关于QT点击按钮实现画图的问题

想实现点击一个QPushButton,然后绘出一条直线,再点一次,在原来那条直线的
基础上,在下面一点点的位置再绘出一条直线。用来演示一步步绘图的步骤 。

刚刚学 2 个月,基础不太好,感谢大佬给出方法!

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于Qt画图的问题?
在窗口上画图,必须要使用paintEvent()吗?rn我想在timerEvent()中在窗口上画图,要怎么实现呢??rn
Qt关于画图的问题
hi, 小弟刚接触Qt不久,现在想做一个小例子,就是把一幅图片(jpg格式的)显示在窗口上,图片是从屏幕左边移动到屏幕右边的,在移动过程中,图片也作了360度的旋转。rnrn我定义了一个类:rnclass JoneyView : public QWidgetrnrn Q_OBJECTrnrnprotected:rn void paintEvent(QPaintEvent *event = 0);rnrnpublic:rn JoneyView(QWidget *parent, QRect pRect);rn ~JoneyView();rnrn.........rnrnrnrnrnrnrnvoid JoneyView::paintEvent(QPaintEvent *event)rnrn static QPixmap pix(this->size());rn pix.fill(this, this->rect().topLeft());rn QPainter p(&pix);rnrn p.setRenderHint(QPainter::Antialiasing, true);rn p.setPen(QPen(Qt::black, 12, Qt::DashDotLine, Qt::RoundCap));rn p.setBrush(QBrush(Qt::green, Qt::SolidPattern));rn p.drawEllipse(mRect3);rnrn p.end();rnrn QPainter painter(this);rn painter.begin(this);rn painter.drawPixmap(rect(), pix);rn painter.end();rnrnrn/*rn QPainter painter(this);rn painter.setRenderHint(QPainter::Antialiasing, false);rnrn if (!mTimerIsStarted)rn painter.drawPixmap(mRect3, mImage3);rn*/rnrnrnrn其中的mRect3是一个由QTimer控制的从左到右不断变化的QRect.rnmImage3是在别的地方加载的一个图片,调用update来触发paintEvent重绘图片rn但是在paintEvent函数中,不管是没有注释的双缓冲画图部分还是已经注释了的显示图片的部分,在图像移动的过程中都出现了很明显的闪烁现象,如果图片不移动,只是在原位置旋转都看不见闪烁现象,往高手帮忙解决下,谢谢了rnrn主要就是一旦移动图片,就出现闪烁,我把图片变小了试都还是有闪烁,Qt应该是比较成熟的了,像这类的问题应该是可以实现的吧。
关于QT画图的问题
想做一个下棋的游戏,但是在画图上有点问题rn1)、画图是不是只能在QMainWindow或QGraphicsView下画画?能在Qwidget下画画吗rn[img=https://img-bbs.csdn.net/upload/201906/14/1560448418_46793.png][/img]rnrn我想按下开始设置条件后,在红色线位置画画。paint->begin(arc)里的参数能是Qwidget吗?rnrn2)、在QMainWindow画画怎样指定位置rnrn3)、在QGraphicsView能监控鼠标事件吗rnrn没看过书的初学者,求帮助
点击按钮画图
当你点击了一个按钮就可以画图,比如矩形,直线等
QT 按钮点击变色
[img=https://img-bbs.csdn.net/upload/201710/12/1507803739_702610.png][/img]rnrnrnrn想让按钮点击后变色,再次点击变回原色,要用什么方法呀
点击按钮在视图上画图
我在OnDraw函数中去画了一个图形,但是这种缺陷是每次程序启动的时候都会有图像。我自定义了一个工具对话框来对图形进行修改参数。现在我想通过点击按钮的方法来通知View来重画。而不是每次程序启动就直接画了。问:如果不在OnDraw中调用绘图方法,那该在哪里调用?rn是否需要对点击按钮来进行发送消息?rn如果有高人,请指点。
画图软件qt实现
6.1 演示案例 【任务目标】 实现简单的绘图功能,并支持绘图数据的保存和打开等功能。 通过 Draw 菜单,由用户点击选择不同的图形,按下鼠标左键并拖动鼠标开始绘 图,松开鼠标后保存图形(线条、椭圆、矩形)数据,并更新屏幕显示。 File 菜单下定义文件的基本操作, New 菜单项用于新建绘图文件,如果上一 个文件修改了并没有保存,需要进行提示, Save 用于将绘图结果保存为磁盘文 件,实现持久化存储, Open 用于打开存盘的图形文件。 6.1.1 简单绘图版本
QT:怎样实现点击按钮,加载地图
大体说一下思路,地图界面用什么装载比较好呢,QLabel,QButton,还是别的其他什么的呢?
QT实现点击按钮出现信号
创建QtGuitest13项目文件 添加一个基于QFrame的类,命名为CircleWidget 在CircleWidget.h中 #ifndef CIRCLEWIDGET_H #define CIRCLEWIDGET_H #include <QFrame> class CircleWidget : public QFrame { Q_OBJECT public: C...
Qt实现带有点击按钮分割布局
在QSpliter的基础上布局button,点击button使窗体直接隐藏
qt编程下实现点击按钮调用外部程序
轻松实现qt下点击按钮所实现的外部程序的调用!
Qt点击按钮打开图片
Qt 点击按钮打开图片
QT,点击按钮,动态图片滑动效果
由于需要,临时写的一个简单的点击按钮,图片动态滑动效果。本人开发环境是VS2013+qt5.6,用其他版本的VS和Qt重新编译就行
Qt中确定点击了哪个按钮的问题
我定义了一组的按钮.数目是由输入确定.我想实现点击哪个按钮就将该按钮设为透明.且这些按钮共用一个槽.现在问题是怎么确定点击了哪个按钮
Qt画图问题
是用QPainter的drawPolyline(QPointF *, int )方法画折线,rn我用的点集是一个有155个点的QPointFrnQPointF point[155];rn.......初始化点rnmyPainter->drawPolyline(point,155);rn我使用的点集里面没有QPoint(0,0),但是画完以后最后一笔画到了(0,0)去了rn文档里给的例子是:rnstatic const QPointF points[3] = rn QPointF(10.0, 80.0),rn QPointF(20.0, 10.0),rn QPointF(80.0, 30.0),rn ;rn QPainter painter(this);rn painter.drawPolyline(points, 3);rn并没有说要重复某点,不知道是哪里出了问题。rnrn下面是具体的点:rn调试开始rn0 : QPointF(9656, 4887) rn1 : QPointF(9893, 4668) rn2 : QPointF(10266, 4305) rn3 : QPointF(10127, 4459) rn4 : QPointF(10498, 4362) rn5 : QPointF(10611, 4015) rn6 : QPointF(10466, 4189) rn7 : QPointF(10776, 4151) rn8 : QPointF(10830, 4116) rn9 : QPointF(10627, 3827) rn10 : QPointF(10680, 3797) rn11 : QPointF(10731, 3770) rn12 : QPointF(11038, 3747) rn13 : QPointF(11088, 3726) rn14 : QPointF(10881, 3966) rn15 : QPointF(10928, 3952) rn16 : QPointF(10975, 3943) rn17 : QPointF(11277, 3938) rn18 : QPointF(11321, 3937) rn19 : QPointF(11365, 3940) rn20 : QPointF(11151, 3947) rn21 : QPointF(11192, 3959) rn22 : QPointF(11232, 3718) rn23 : QPointF(11527, 3738) rn24 : QPointF(11565, 3761) rn25 : QPointF(11603, 3788) rn26 : QPointF(11639, 3818) rn27 : QPointF(11419, 4108) rn28 : QPointF(11454, 4144) rn29 : QPointF(11488, 4184) rn30 : QPointF(11777, 3971) rn31 : QPointF(11811, 4016) rn32 : QPointF(11843, 4065) rn33 : QPointF(11651, 4424) rn34 : QPointF(11714, 4280) rn35 : QPointF(11775, 4656) rn36 : QPointF(12092, 4527) rn37 : QPointF(12154, 4915) rn38 : QPointF(11959, 4796) rn39 : QPointF(12341, 5077) rn40 : QPointF(12218, 5363) rn41 : QPointF(12544, 5504) rn42 : QPointF(12618, 5899) rn43 : QPointF(12439, 5779) rn44 : QPointF(12519, 6166) rn45 : QPointF(12860, 6036) rn46 : QPointF(12694, 6410) rn47 : QPointF(12741, 6467) rn48 : QPointF(12789, 6521) rn49 : QPointF(13095, 6317) rn50 : QPointF(13146, 6367) rn51 : QPointF(12942, 6671) rn52 : QPointF(12996, 6716) rn53 : QPointF(13051, 6759) rn54 : QPointF(13362, 6543) rn55 : QPointF(13419, 6582) rn56 : QPointF(13221, 6618) rn57 : QPointF(13280, 6651) rn58 : QPointF(13596, 6939) rn59 : QPointF(13656, 6967) rn60 : QPointF(13461, 6994) rn61 : QPointF(13523, 7018) rn62 : QPointF(13842, 7039) rn63 : QPointF(13905, 6802) rn64 : QPointF(13713, 6819) rn65 : QPointF(13777, 6833) rn66 : QPointF(14098, 6845) rn67 : QPointF(14163, 6854) rn68 : QPointF(13972, 6860) rn69 : QPointF(14037, 6864) rn70 : QPointF(14359, 6865) rn71 : QPointF(14425, 6864) rn72 : QPointF(14235, 6860) rn73 : QPointF(14301, 6854) rn74 : QPointF(14623, 6845) rn75 : QPointF(14688, 6833) rn76 : QPointF(14498, 6819) rn77 : QPointF(14884, 7039) rn78 : QPointF(14756, 6994) rn79 : QPointF(15137, 6940) rn80 : QPointF(15003, 6622) rn81 : QPointF(15378, 6552) rn82 : QPointF(15235, 6730) rn83 : QPointF(15343, 6390) rn84 : QPointF(15701, 6299) rn85 : QPointF(15541, 6457) rn86 : QPointF(15885, 6098) rn87 : QPointF(15965, 6246) rn88 : QPointF(15746, 6190) rn89 : QPointF(15780, 5877) rn90 : QPointF(15813, 5819) rn91 : QPointF(15842, 5760) rn92 : QPointF(15870, 5956) rn93 : QPointF(16150, 5895) rn94 : QPointF(16193, 5515) rn95 : QPointF(16227, 5644) rn96 : QPointF(16253, 5258) rn97 : QPointF(16017, 5382) rn98 : QPointF(16032, 4992) rn99 : QPointF(16041, 4857) rn100 : QPointF(16048, 4977) rn101 : QPointF(16054, 4704) rn102 : QPointF(16058, 4431) rn103 : QPointF(16062, 4040) rn104 : QPointF(16068, 4163) rn105 : QPointF(16078, 3776) rn106 : QPointF(16092, 3902) rn107 : QPointF(16111, 3520) rn108 : QPointF(16393, 3652) rn109 : QPointF(16426, 3276) rn110 : QPointF(16468, 3415) rn111 : QPointF(16493, 3359) rn112 : QPointF(16264, 3047) rn113 : QPointF(16293, 2993) rn114 : QPointF(16325, 3196) rn115 : QPointF(16360, 3144) rn116 : QPointF(16654, 3094) rn117 : QPointF(16695, 2789) rn118 : QPointF(16738, 2741) rn119 : QPointF(16527, 2695) rn120 : QPointF(16575, 2906) rn121 : QPointF(16625, 2863) rn122 : QPointF(16932, 2821) rn123 : QPointF(16786, 2486) rn124 : QPointF(17158, 2671) rn125 : QPointF(17024, 2606) rn126 : QPointF(17150, 2293) rn127 : QPointF(17280, 2245) rn128 : QPointF(17669, 2204) rn129 : QPointF(17548, 2428) rn130 : QPointF(17939, 2405) rn131 : QPointF(17819, 2391) rn132 : QPointF(17886, 2388) rn133 : QPointF(18209, 2387) rn134 : QPointF(18275, 2389) rn135 : QPointF(18085, 2393) rn136 : QPointF(18470, 2409) rn137 : QPointF(18342, 2177) rn138 : QPointF(18724, 2210) rn139 : QPointF(18591, 2250) rn140 : QPointF(18969, 2298) rn141 : QPointF(18833, 2607) rn142 : QPointF(19206, 2667) rn143 : QPointF(19322, 2477) rn144 : QPointF(19180, 2546) rn145 : QPointF(19548, 2876) rn146 : QPointF(19402, 2698) rn147 : QPointF(19767, 2778) rn148 : QPointF(19618, 3117) rn149 : QPointF(20082, 3031) rn150 : QPointF(20285, 3204) rn151 : QPointF(20482, 3634) rn152 : QPointF(20418, 3553) rn153 : QPointF(20863, 3729) rn154 : QPointF(20981, 4081) rn
qt画图问题
最近的一个项目是对特定的文件分析然后画出对应的图形,现在图形已经可以正常显示,但是当处理比较大的文档并画出对应的图形时,就特别慢,对图形的缩放和移动也是如此。rn从网上搜到有人使用 QDirectPainter(直接访问帧缓冲)类可以实现快速的无闪烁的绘图,但是不知道如何下手,如果有用过的或者对此熟悉的,希望能指点一二,先谢过! qt+linux+arm11
qt中画图问题
我最近在做Qt的上位机程序,现在有一个数据文件(里面全是对应的坐标信息),我现在需要把这些数据显示出来,但是图形上只能画400-500个点,如果我只取连续的点的话,如果图形周期长的话只能显示一两个周期,显示信息太少,如果我不连续取点的话(隔一段取一个点)画出的图形不连续,全是散点,现在就想请教如果能在图形上多显示文件的图形信息()
Qt 画图问题
比如说rn[code=C/C++]rnvoid A::paintEvent(QPaintEvent *) rn rn rn rn QPainter p(this); rn ...rnrn[/code]rn这玩意怎么调用的?
qt画图的问题
我使用QLabel显示了一张图片QPixmap,现在要想在这张图片上用鼠标画方框,请问应该怎么实现?
QT画图的怪问题
我做了一个网络画图的程序(涂鸦版),简单地说:就是你可以直接用鼠标在界面上画图,也可以通过网络向它发送数据(局域网),让它自动画图。通过网络向它发送数据让它自动画图时,画图好像有点延迟,我开始以为是网络的问题,但是,当我同时通过鼠标和网络让它画图时(同时画多条线),它竟然一点延迟都没有!为什么会这样子的呢?是不是我通过网络让它自动画图时,没有及时刷新界面呢?rnrnrn程序很大,我只帖部分代码上来:rn[code=C/C++]struct PenStatusrnrn bool mouseDown; rn int penSize;rn QColor penColor;rn QPoint lastPoint;rn PenStatus() rn rn mouseDown = false;rn penSize = 5;rn penColor = Qt::black;rn lastPoint = QPoint(0, 0);rn rn;rnrnenum ORDER_KINDrnrn MOUSE_DOWN = 1,rn MOUSE_MOVE = 2,rn MOUSE_UP = 3,rn SET_SIZE = 4,rn SET_COLOR = 5,rn;rnrnvoid PaintWidget::paintEvent(QPaintEvent *event) rn rn QPainter painter(this); rn QRect dirtyRect = event->rect(); rn painter.drawImage(dirtyRect, m_Image, dirtyRect); rnrn rnrnvoid PaintWidget::drawLineTo(PenStatus &status, const QPoint &endPoint)rn rn QPainter painter(&m_Image); rn painter.setRenderHint(QPainter::Antialiasing, true); rn QPen pen = QPen(status.penColor, status.penSize, Qt::SolidLine,rn Qt::RoundCap, Qt::RoundJoin);rn painter.setPen( pen ); rn painter.drawLine(status.lastPoint, endPoint); rn m_Modified = true; rnrn int rad = (status.penSize / 2) + 2; rn repaint(QRect(status.lastPoint, endPoint).normalized() rn .adjusted(-rad, -rad, +rad, +rad)); rn status.lastPoint = endPoint; rn rnrn//从网络中接收到并经过处理之后的数据rnvoid PaintWidget::OtherMouseEvent(int kind, const QString &name, QPoint point)rnrn QMap::iterator iter;rn iter = m_PenStatusMap.find(name);rn if( m_PenStatusMap.end() == iter )rn return;rnrn if( MOUSE_DOWN == kind )rn rn iter.value().lastPoint = point;rn iter.value().mouseDown = true;rn rn else if( MOUSE_MOVE == kind )rn rn drawLineTo(iter.value(), point);rn rn else if( MOUSE_UP == kind )rn rn drawLineTo(iter.value(), point);rn iter.value().mouseDown = false;rn rn[/code]
qt 中画图的问题
请问用QT如何能实现在屏幕画线的功能而不是在窗体画线
QT画图问题
我写了个画图函数,如果用单线程设个定时器可以画出来,但是图形刷新太慢,效果不好,现在我又想创建一个线程,就让它一直画图,但是这个线程可以执行(如果让它输出一句话可以出来)但是画图就不行了,本人是个新手不知如何解决
Qt 画图的问题
各位好,本人初学Qt,本人使用的是Qt Creator ,最近碰到了Qt的画图问题,我先用Qt Designer 建了一个对话框,在对话框上我又加了个QWidget控件,我想在这个QWidget控件上画图但不知道这么解决,各位仁兄可否给个建议?
关于点击按钮机制的问题
据我知道的,点击按钮实际上就是给窗体发送消息。我现在主要想知道的问题是 我程序在执行过程中,比如正在执行一个定时器中的命令,然后我突然点击按钮。那么此时,程序是执行完定时器内这个周期的命令再来响应按钮事件,还是点击按钮那一个瞬间就响应按钮消息,从而暂时中断定时器内命令的执行?
关于按钮重复点击的问题
我有一个查找按钮,当按下这个按钮后它有很长的数据处理要进行,所以我在按钮Click事件中,开始将其设置为不可用,最后将其设置为可用,但是当执行时,在我点完按钮数据处理过程中,再次在不可用的按钮上重复点击多次,当第一次的数据库里完成后,按钮继续响应了我在它不好用状态下点击的事件!请问有没有什么好的办法解决呢?rnDoEvents可以解决,但是它有什么不好的地方?有没有更好的方法?
关于点击按钮弹出对话框的问题
问题如下:我在开发网站时,碰到这样的一个问题,在解决弹出对话框的问题时,有一种办法是用客户端控件,可以在点击时弹出询问用户的对话框。但我想在点击时先进入onclick子过程,进入后,此时有一条件进行判断,如果满足就弹出对话框,否则不弹出。并且弹出对话框时,用户选择了确定,将继续执行后面代码,否则不执行。rnrnrn 请大侠帮我想想办法,代码和控件是怎么用,具体是客户端控件还是服务器控件,然后具体后台代码是如何实现? 谢谢
关于Qt 信号与槽自动连接 qPushbutton按钮无法点击的问题
#ifndef TEST_H #define TEST_H #include #include namespace Ui { class test; } class test : public QMainWindow { Q_OBJECT public: explicit test(QWidget *parent = 0); ~tes
关于Qt MainWindow工程中qPushbutton按钮无法点击的问题
今天根据教程-《Qt开发实例》学习遇到一个问题,当在MainWindow类中添加qPushbutton后,按钮无法用鼠标点击,折腾了很久发现是MainWindow中private预先定义的 Ui::MainWindow *ui 的原因,它通过ui->setupUi(this) 创建了一个位于窗口顶部的栏位,且至于了窗口最顶层,导致后来创建的qPushbutton被覆盖住了,所以无法点击
点击按钮实现按钮的转动
首先在res中创建anim文件夹,然后创建ref_anim.xml文件 之后在按钮的点击事件中加入,转动动画效果 代码如下:xml文件 xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:
关于QT中的一个画图问题
我用 QPainter画了一个东西,如何取得整个东西的QRegion?看了一天的文档,茫然无头绪,谢谢
关于QT自mainwindow窗口下画图的问题
比如说。我想在mainwindow下画一个矩形,或者显示一幅图片。该怎么做?麻烦各位大侠指导一下!谢谢了!
QT 画图
我想在画板上画一个矩形,在拖动鼠标画的时候,可以看到矩形轮廓,这个轮廓随着鼠标移动时,大小相应的改变,但只保留鼠标最后停留位置的那个矩形。就像windows画图里面画矩形一样,该如何实现呢?本人菜鸟,请大神们赐教。谢谢。
qt 画图
如何在QPixmap上画图,如何判断QPainterPath路径是封闭的
自定义view 画图 柱状图 点击按钮添加数据
主页面 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); main_myview = findViewById(R.id.main_myview)...
Qt画图
我继承了QWidget;实现了一个类rn class MyPainter : public QWidgetrn rn Q_OBJECTrn public:rn void paintEvent(QPaintEvent *event);/////rn void draw(char type);rn signals:rn public:rn MyPainter(QWidget *parent = 0);rn ~MyPainter();rn ;rn//.cpprnvoid MyPainter::draw(char type)rn rn QPainter painter(this);rn if(type == 'T')rn rn painter.setRenderHint(QPainter::Antialiasing,true);rn painter.setPen(QPen(Qt::black,12,Qt::DashDotLine,Qt::RoundCap));rn painter.setBrush(QBrush(Qt::green,Qt::SolidPattern));rn painter.drawEllipse(80,80,400,240);rn rn rn void MyPainter::paintEvent(QPaintEvent *event)rn rn draw('T');rn rnrn在MainWindow里调用rn//响应的一个按钮事件消息rnvoid MainWindow::on_page0_clicked()rn rn QMessageBox::about(NULL, "About", "About this application");rn MyPainter m_painter(this);rn m_painter.paintEvent(NULL);//木有任何作用。。。。。rn rnQt不是继承后重写paintEvent就可以了吗?为神马没效果啊。。。rn调试下是rnQPainter::begin: Paint device returned engine == 0, type: 1rn QPainter::setRenderHint: Painter must be active to set rendering hintsrn QPainter::setPen: Painter not activern QPainter::setBrush: Painter not active
Qt实现不规则按钮
公司有需求让我做一个能控制xyz轴的控制面板,同事不知如何做一个好看的不规则按钮,这里教大家一个简便的方法。 先来看看这个button是不是你要的style: 1.用ps制作以上按钮,并且上三种颜色,分别是常态,hover,和按下去的状态,由于色差不大,这里看上去差不多,看看我做的。大小150*150。 2.然后设置css样式表,让鼠标移上去有反应,按下也有反应,css样式不说了,网...
QT实现任务栏按钮
酷狗音乐播放那种,在任务栏预览视图可以出现按钮。我看了官方的代码,感觉没啥区别啊,为什么运行不出来。特来请教万能的CSDN大神!rn这个是我的代码:rn[img=https://img-bbs.csdn.net/upload/201510/08/1444273490_633598.png][/img]rn这个是官方的代码:rn[img=https://img-bbs.csdn.net/upload/201510/08/1444273611_286913.png][/img]rn望指教。感觉可能是我的指针传错了。rn项目是系统自己生成的界面,会不会是这个有问题?rnrn
QT 实现的在linux系统下的按钮
qt实现的在linux下可用的按钮控制多窗口切换小程序
Qt不规则按钮实现
用Qt编写的不规则按钮,控制面板的圆形按钮
请问怎么才能点击画图按钮自动弹出窗口自动画图??
[img=http://photo2.bababian.com/upload5/20110702/3CBDC81257D7B2262DB08E875A1DF456.jpg][/img]rnrnrnrnrn工程文件下载地址:http://u.115.com/file/dnssq24c#rnrnrn请问怎么才能点击画图按钮自动弹出窗口自动画圆??请大家帮忙修改一下,我刚刚学不太会……
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表