
Qt
qt
LIEYz
这个作者很懒,什么都没留下…
展开
-
Q_OBJECT的作用
Q_OBJECT是Qt中的一个宏。由于Qt的语法是在c++的基础上拓展的,所以在Qt程序的编译过程中,直接用gcc这些标准编译器编译是不可行的,因为gcc不能识别这些拓展性的语法,比如信号和槽(Signal and Slot)。于是Qt引入了moc这一编译器。moc(Meta-Object Compiler),即元对象编译器,Qt 程序在交由标准编译器编译之前,会使用 moc 分析 C++ 源文件,假设它发现某个头文件中包括了 Q_OBJECT这个宏(注意, moc 只处理头文件中标记了Q_OBJECT的原创 2021-05-27 11:07:46 · 5398 阅读 · 0 评论 -
QtCreator使用总结
新建一个QT项目后,默认会让用户选择编译链,用户可以在新建工程时,将编译链全部勾选,一劳永逸.如果在工程设置时没有选择正确的工具链,可以在工具栏的项目选项中修改在 build & run 中点击对应的工具链即可使能,禁用已使能的工具链需右键然后选择disable工具链...原创 2020-07-15 10:10:04 · 388 阅读 · 0 评论 -
Qt程序运行中设置QMainWindow透明,子控件不透明
设置QMainWindow透明,子控件不透明this->setWindowFlags(Qt::FramelessWindowHint);this->setAttribute(Qt::WA_TranslucentBackground);但上述代码只有在QMainWindow的构造函数中调用才可行,如果是在程序运行中,比如点击了某个按钮,在信号处理函数中调用这两句代码,则达不到效果。具体原因网上找不到解决方法,需要分析QT源码,有兴趣的读者可以自行分析下。有个取巧的方法可以实现在程序运行中原创 2020-06-11 15:52:45 · 2545 阅读 · 6 评论 -
Qt视图框架QGraphicsView
Graphics View 的特点Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能;Graphics View支持事件传播体系结构,可以使图元在场景(scene)中的交互能力提高1倍,图元能够处理键盘事件和鼠标事件。其中,鼠标事件包括鼠标按下、移动、释放和双击,还可以跟踪鼠标的移动;在Graphics View框架中,通过二元空间划分树提供快速的图元查找,这样就能够实时地显示包含上百万个图元的大场景。Graphics View的三元素场原创 2020-05-21 17:00:28 · 590 阅读 · 0 评论 -
QT事件机制
Qt事件分类Spontaneous 事件由窗口系统产生,它们被放到系统队列中,通过事件循环逐个处理。本类事件通常是Windows System把从系统得到的消息,比如鼠标按键、键盘按键等, 放入系统的消息队列中。 Qt事件循环的时候读取这些事件,转化为QEvent,再依次逐个处理。Posted 事件由Qt或应用程序产生,它们被Qt组成队列,再通过事件循环处理。调用QApplication::postEvent()来产生一个posted类型事件。例如:QWidget::update()函原创 2020-05-20 11:07:05 · 435 阅读 · 0 评论 -
QT坐标系统
Qt中,坐标系可以细分成三类:相对于屏幕的全局坐标相对于顶层窗口的窗口坐标相对于控件的控件坐标Qt中的三类坐标一般是先获得全局坐标,然后将其转换为另外两类坐标。如果是顶层窗口为转换对象,则转换成窗口坐标;如果是控件为转换对象,则转换成控件坐标。具体实现然后整个坐标的获取是在鼠标移动事件里面实现的:接下来是实现代码:void MainWindow::mouseMoveEvent(QMouseEvent *event){ //获得相对于屏幕的坐标 QPoint sPo原创 2020-05-19 18:11:17 · 1609 阅读 · 0 评论 -
QT Creator下配置ffmpeg用extern包含头文件后仍有未定义的报错
问题qt项目下的pro文件中配置lib和include的目录, 也用了extern防止编译问题 但是还是出现了未定义报错。pro文件LIBS += -L$$PWD/ffmpeg-4.2.2-win64-dev/lib/ -lavcodec -lavdevice -lavfilter -lavformat -lavutil -lpostproc -lswscale -lswresample...原创 2020-04-27 14:00:13 · 1054 阅读 · 0 评论 -
Qt单选按钮Radio Button
在UI界面中加入控件将QRadioButton控件加入分组 groupButton = new QButtonGroup(this); groupButton->addButton(ui->radioButton_tractRegion,0); groupButton->addButton(ui->radioButton_maskRegion...原创 2020-04-17 16:12:02 · 1106 阅读 · 0 评论 -
QPainter,QBrush,QPen
QBrush 用来填充图形,QPen用来绘制轮廓线(线段,矩形边框等)QBrush的属性我们可以从QBrush类的构造函数中看出:Brush ()QBrush ( Qt::BrushStyle style )QBrush ( const QColor & color, Qt::BrushStyle style = Qt::SolidPattern )QBrush ( Qt::Gl...原创 2020-04-17 15:44:50 · 497 阅读 · 0 评论 -
Qt在QTabWidget上绘图
先介绍下Qt事件过滤器使用。Qt事件过滤器Qt 事件模块有一个强大的特性,就是可以设置一个QObject的实例1去监测另一个QObject实例2的事件,在被监测控件QObject实例2能看到事件之前,就先被监测的控件QObject实例1看到(拦截)并处理。QObject有一个eventFilter()函数,用于建立事件过滤器:virtual bool QObject::eventFilte...原创 2020-04-09 17:56:27 · 1784 阅读 · 0 评论 -
QT编译问题总结
出现问题背景:当一个带参数为自定义结构体PortConfig的信号发送至另一个线程的槽时connect(this,SIGNAL(SignalOpenPort(PortConfig)),m_pMySerialPortCom,SLOT(OpenPort(PortConfig)));编译时不会出错,但信号出发时出现错误提示:QObject::connect: Cannot queue argum...原创 2020-01-10 17:58:19 · 1213 阅读 · 0 评论