mainwidow里面画图怎么不出图

qq_16198663 2014-12-29 06:03:47
setwindow::setwindow(QWidget *parent)
:QMainWindow(parent)
{
this->resize(900,700);//重新设置大小
// 画一条直线
QPainter painter(this); // 创建QPainter一个对象
QPen pen;
//pen.setStyle(Qt::DashLine);
pen.setColor(Qt::blue); // 设置画笔为蓝色
painter.setPen(pen); // 设置画笔
//画坐标轴系
painter.translate(100,700); //坐标原点定位于物理坐标的(100,700)
painter.scale(1, -1); //Y轴反向向上指
painter.drawLine(0,0,700,0); //画x轴
painter.drawLine(0,0,0,-500); //画y轴
//画y轴左边刻度值
painter.drawText(-100,-90,"100");
painter.drawText(-200,-90,"200");
painter.drawText(-300,-90,"300");
painter.drawText(-400,-90,"400");
painter.drawText(-500,-90,"500");
painter.drawText(-600,-90,"600");
//画x轴右边刻度值
painter.drawText(100,-10,"64");
painter.drawText(200,-10,"128");
painter.drawText(300,-10,"192");
painter.drawText(400,-10,"256");
painter.drawText(500,-10,"320");
painter.drawText(600,-10,"384");
painter.drawText(700,-10,"448");
}
...全文
193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbzhang800 2014-12-30
  • 打赏
  • 举报
回复
1. 绘制操作 必须在派生类重写的 paintEvent() 中进行 2. 派生并重写 QMainWindow的 paintEvent() 是不明智的行为,应该派生一个普通的QWidget
Creator_莫言 2014-12-30
  • 打赏
  • 举报
回复
你把绘图放在构造函数中,窗口出来的时候又会重新绘制,所以没有图是正常的。
qq_16198663 2014-12-30
  • 打赏
  • 举报
回复
void MainWindow::click_set() { m_setwindow->show();//这句可以显示出来 m_setwindow->update();//怎么这句执行了,没有出来坐标?大神求解 }
qq_16198663 2014-12-30
  • 打赏
  • 举报
回复
class setWidget : public QWidget { Q_OBJECT public: explicit setWidget(QWidget *parent = 0); void paintEvent(QPaintEvent *); }; 申明了,窗体大小是变化了,但是还是没有出坐标轴
qq_16198663 2014-12-30
  • 打赏
  • 举报
回复
顺道在问问,我之前是学了C,再直接用QT学的C++,Vs没接触过,调用DLL怎么重新选择装好的VS编译器啊? 或者说那些版本Qt环境可以重新配置MSVC的编译器 大神,期待显灵
qq_16198663 2014-12-30
  • 打赏
  • 举报
回复
好,我再试试 在做一个项目,是厂家用VS2008写好的DLL,LIB,还有2个H文件,直接调用就可以实现配置硬件,然后从硬件里面读取数据,做成实时动态曲线,这方面没有接触过。 主窗体我用mainwindow,子对话框用widget适合一些吧,实时曲线画在子窗体中
foruok 2014-12-29
  • 打赏
  • 举报
回复
楼上正解,绘图要走 Qt 既有的流程才是正解:重写paintEvent函数。
蜗牛sf 2014-12-29
  • 打赏
  • 举报
回复
绘图部分放到paintEvent函数里
void QWidget::paintEvent ( QPaintEvent * event ) [virtual protected]

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧