Tag: qt4

什么是正确的方式来实现一个QThread …(例如请…)

QThread的Qt文档说从QThread创build一个类,并实现run方法。 以下是取自4.7 Qthread文档… 要创build自己的线程,创build子类QThread并重新实现run()。 例如: class MyThread : public QThread { public: void run(); }; void MyThread::run() { QTcpSocket socket; // connect QTcpSocket's signals somewhere meaningful … socket.connectToHost(hostName, portNumber); exec(); } 所以在我创build的每一个线程中,我已经完成了这个工作,对于大多数事情来说它工作得很好(我没有在我的任何对象中实现moveToThread(this),而且效果很好)。 上周我遇到了一个麻烦(设法通过在我创build我的对象的地方工作来解决这个问题),并发现了以下博客post 。 这里基本上说,子类化QThread真的不是正确的方法来做到这一点(和文档是不正确的)。 这是来自Qt开发人员,所以乍一看我感兴趣,经过进一步思考,同意他的观点。 遵循面向对象的原则,你真的只想要inheritance一个类,以进一步增强这个类…不只是直接使用类的方法…这就是为什么你实例… 比方说,我想移动一个自定义的QObject类到一个线程…什么是“正确”的方式呢? 在那个博客文章中,他说:“他有一个例子,但如果有人可以进一步向我解释它,将不胜感激! 更新: 由于这个问题得到了如此多的关注,下面是4.8文档的复制和粘贴,以“适当”的方式来实现一个QThread。 class Worker : public QObject { Q_OBJECT QThread workerThread; public slots: void doWork(const QString […]

如何使窗口大小与Qt Widget一起成长?

我想要一个小型的QFormLayout来增长它的父窗口部件。 我使用Qt Designer中的QWidget模板创build了一个新的.ui文件。 我把一个QFormLayout放在那个“窗口”里面,然后在QFormLayout里面放一些控件。 这一切都运作良好,但QFormLayout始终保持我在Qtdevise器中设置的大小。 我想QFormLayout来填充它的父窗口部件,并随着它的增长/缩小。 我怎么能做到这一点?

QMainWindow,QWidget和QDialog有什么区别?

QMainWindow,QWidget和QDialog有什么区别?

QLabel:设置文字和背景的颜色

如何设置QLabel的文本和背景的颜色?

控制台输出在Qt GUI应用程序?

我有一个在Windows上运行的Qt GUI应用程序,允许传递命令行选项,在某些情况下,我想输出一条消息到控制台,然后退出,例如: int main(int argc, char *argv[]) { QApplication a(argc, argv); if (someCommandLineParam) { std::cout << "Hello, world!"; return 0; } MainWindow w; w.show(); return a.exec(); } 但是,从命令提示符运行应用程序时,控制台消息不会显示。 有谁知道我怎么能得到这个工作?

如何在VS2012下静态构buildQt 4.8 / 5.2,使用静态MSVC运行时,支持Windows XP?

我想在VS2012下完全构buildQt 4.8 / 5.2,包括静态运行时库,以及Windows XP系统。 Qt并不支持这个function,因为即使是Qt的静态构build也使用dynamic链接的MSVC运行时。 这是一个典型的问题,它提供了成功构build满足这些需求的Qt所必需的知识。

在Windows上的Qt可执行文件中设置应用程序信息

任何人都有提示从Qt设置应用程序信息(即右键单击.exe->属性)? 我可以添加任意版本的string到Qt资源文件(qrc)并显示它们。 但大多数Windows安装程序检查版本号,我找不到一个Qt的方式来设置这些字段,而不是手动维护一个单独的.RC文件 有些方法可以让你从一个自动化版本更新这也是很好的!

QCompleter自定义完成规则

我正在使用Qt4.6,我有一个QCompleBox在其中。 通常的function是提供完成提示(这些可以在下拉而不是内联 – 这是我的用法)基于前缀。 例如,给出 chicken soup chilli peppers grilled chicken 进入“ch”将匹配“鸡汤”和“辣椒”,而不是“烤鸡”。 我想要的是能够进入“ch”,并匹配所有的鸡,更具体地说,“鸡”,匹配“鸡汤”和“烤鸡”。 我也希望能够将“chs”这样的标签分配给“鸡汤”,以产生不仅仅是文本内容的另一个匹配。 我可以处理algorithm,但是, QCompleter的哪些function需要重写? 我不确定我应该在哪里寻找…