在主线程上,可以控制子线程启动,停止,清零
如果子线程启动的话,每一秒钟会向主线程发送一个数字,让主线程更新界面上的数字。
继续阅读 »
GUI(主)线程与子线程之间的通信
Qt 切图,九宫格图标 多合一图标 border-image 设置图标
1 2 3 4 5 6 7 8 9 10 |
void SetButtonStyle(QPushButton *button, QString imgsrc, int CutSec) { int PicWidth = QPixmap(imgsrc).width()/CutSec; button->setStyleSheet(QString("QPushButton{border-width: 41px; border-image: url(%1) 0 0 0 %2 repeat repeat;border-width: 0px; border-radius: 0px;}") .append("QPushButton::hover{border-image: url(%1) 0 0 0 %3 repeat repeat;}") .append("QPushButton::pressed{border-image: url(%1) 0 0 0 %4 repeat repeat;}") .append("QPushButton::checked{border-image: url(%1) 0 0 0 %4 repeat repeat;}") .append("QPushButton::disabled{border-image: url(%1) 0 0 0 %5 repeat repeat;}") .arg(imgsrc).arg(0).arg(PicWidth*1).arg(PicWidth*2).arg(PicWidth*3)); } |
Qt 无边框、透明、可移动、的个性窗体案例详解
很多朋友都问透明的效果怎么做,为什么自己做的无边框窗体不可移动,一个个回答的很累,干脆写出来分享下好了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int main(int argc, char *argv[]) { QApplication::setStyle("cleanlooks"); QApplication a(argc, argv); login w; w.setWindowTitle("ClientLogin"); w.setWindowOpacity(1); w.setWindowFlags(Qt::FramelessWindowHint); w.setAttribute(Qt::WA_TranslucentBackground); w.show(); w.move(200,100); return a.exec(); } |
Qt实现自定义按钮的三态效果
好久之前做的一个小软件,好长时间没动过了,在不记录下有些细节可能都忘了,这里整理下部分功能的实现。
按钮的三态,指的是普通态、鼠标的停留态、点击态,三态是界面交互非常基本的一项功能,Qt中如果使用的是原始的按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果,工具栏中的图标也具备三态效果,但是如果自定义的图标这个效果就没有了。
继续阅读 »
Qt Creator 窗体控件自适应窗口大小布局
常见的软件窗口大小改变(最大化、手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的。网上百度了很多,多数说的很含糊,还有很多是用程序实现的,既然已经有Qt Creator那么高集成度的工具了,我还是倾向于直接在Qt Creator中通过可视化配置的方式完成,一是所见即所得,而是效率要高不少。
继续阅读 »
正确使用Qt多线程
QThread的常见特性:
run()是线程的入口,就像main()对于应用程序的作用。QThread中对run()的默认实现调用了exec(),从而创建一个QEventLoop对象,由其处理该线程事件队列(每一个线程都有一个属于自己的事件队列)中的事件。 继续阅读 »
QSingleApplication类
一介绍
通过编写一个QSingleApplication类,来实现Qt程序的单例化,原文的作者是在Windows Vista +Qt4.4 下实现的,不过应用在其他平台上是没问题的。(本文是我在http://www.qtcentre.org/wiki/index.php?title=SingleApplication上看到的)
继续阅读 »
使Qt 程序只能运行一个实例的3种方法
1. 共享内存的方法
Unix: QSharedMemory “owns” the shared memory segment. When the last thread or process that has an instance of QSharedMemory attached to a particular shared memory segment detaches from the segment by destroying its instance of QSharedMemory, the Unix kernel release the shared memory segment. But if that last thread or process crashes without running the QSharedMemory destructor, the shared memory segment survives the crash.
继续阅读 »
qt 多线程之间通讯
问题描述:界面线程MainApp为主线程,工作线程MyThread为一子线程,从工作线程向主线程传递字符串用于在主线程中显示。
Qt的信号与槽机制可以将任何继承自QObject类的对象捆绑在一起,使不同对象之间能够相互通信。
继续阅读 »
近期评论