现在位置: 首页 > Qt
2015-05-27 08:28 工业·编程 ⁄ 共 1707字 暂无评论
在QWidget的众多派生类之中,QDesktopWidget比较特殊的一个(另一个比较特殊的是QAxWidget,定义了信号槽,却不使用Q_OBJECT这个宏)。 我们知道QDesktopWidget的作用就是获取和桌面相关的各种信息。恩,其实,它和QWidget没有多少共同点。 特殊之处? class Q_WIDGETS_EXPORT QDesktopWidget : public QWidget { ... protected: void resizeEvent(QResizeEvent *e); ... }; 一般很少见到直接从QWidget派生的类,却没...
阅读全文
2015-05-25 07:21 工业·编程 ⁄ 共 2826字 暂无评论
Qt5下,QWidget系列从QtGui中被剥离出去,成为单独的QtWidget模块。随着Qt Quick2的引入,QtDeclarative也逐渐和QWidget系列也脱离关系。 最终:在Qt5下的GUI编程,有两套不同的东西 QtWidget (使用一个被称为 BackingStore 的东西) QtQuick (使用一个被称为 Scene Graph 的东西) 这两个是什么东西(我还真说不清)?但我们, 不妨先,从根本的QtGui中的QWindow这个东西开始看起,看看QWindow是如何配合QWidget进行工作的...
阅读全文
2015-05-15 07:10 工业·编程 ⁄ 共 1182字 暂无评论
自动重启,也就是退出当前进程,启动一个新的进程。于是,先看程序如何退出 退出 Qt程序的一般结构如下: int main(int argc, char** argv) { QApplication app(argc, argv); Widget w; w.show() return app.exec(); } 最后一句启动了主线程的事件循环。而要退出程序,就是要退出这个事件循环,使main函数返回。 如何退出? 正确方式: QCoreApplication::exit(int); 它还有一个马甲 QCoreApplication::...
阅读全文
2015-05-13 07:02 工业·编程 ⁄ 共 3797字 暂无评论
本文旨在说明:QDialog::exec()、QMenu::exec()等开启的局部事件循环,易用的背后,还有很多的陷阱... 引子 Qt 是事件驱动的,基本上,每一个Qt程序我们都会通过QCoreApplication或其派生类的exec()函数来开启事件循环(QEventLoop): int main(int argc, char**argv) { QApplication a(argc, argv); return a.exec(); } 但是在同一个线程内,我们可以开启多个事件循环,比如通过: QDialog::exec() QDrag::exec(...
阅读全文
2015-05-12 08:01 工业·编程 ⁄ 共 3116字 暂无评论
延续前面从QProcess说开来(一)的名字,换个角度继续学习。 QIODevice派生类 QProcess作为QIODevice的派生类,实现角度上看,它必须要重新实现下面两个成员函数: readData() writeData() 而后,按照QIODevice的常规用法,我们 调用QIODevice::open()打开设备 使用QIODevice::read()/QIODevice::write()读写 使用QIODevice::close()关闭 实际上,我们的常规用法是: 常用代码 其调用父类成员 QProcess::start()...
阅读全文
2015-05-11 06:59 工业·编程 ⁄ 共 3014字 评论 1 条
QProcess类的作用是启动一个外部的程序并与之交互。我们不妨看看:一个普通的控制台程序,与外界是如何交互的 简单控制台程序 一个程序如何从外界获取信息并向外输出信息呢? 方向 途径   获取 命令行参数 int main(int argc, char **argv) 标准输入 scanf()/getc()/getchar()/... 环境变量 getenv() 输出 标准输出 printf() ... 标准出错 fprintf(stderr,...) 返回值 r...
阅读全文
2015-05-03 06:36 工业·编程 ⁄ 共 2900字 暂无评论
QMenu和QMenuBar都是QWidget的派生类,按理说也没有什么特别的。只是真的想理清它,似乎还真的不是那么简单... QMenuBar 在漫谈QWidget及其派生类(三)中,我们已经知道:QMenuBar和QStatusBar都是QWidget的派生类,所以我们可以像添加一个QPushButton一样将它们任意放置到另一个QWidget中。 继续看个别的例子: #include <QtGui> int main(int argc, char *argv[]) { QApplication app(argc, argv); QMenuB...
阅读全文
2015-05-02 06:28 工业·编程 ⁄ 共 3611字 暂无评论
和前面的 一二三四 没有什么连贯性,也没涉及QWidget的派生类,既然是漫谈,我忍了。 相关阅读     ----漫谈QWidget及其派生类(四) 本文内容:QWidget的创建 起点... 看看本文的代码,是不是很失望?这么简单的一个超级入门级小程序,能有什么可看的? #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget w; w.sho...
阅读全文
2015-04-30 04:25 工业·编程 ⁄ 共 3650字 评论 1 条
漫谈QWidget及其派生类(三)中我们了QMainWindow到底是个什么东西,接下来就看看QDialog吧,没办法,谁让它这么常用呢? 很多人觉得QDialog比QWidget高级很多,为什么呢? QDialog(this) 和 QWidget(this) 前者是窗口,后者不是。 QDialog 除 show()外,还有 exec() 和 open() 两个成员用来显示窗口。 QDialog .... 本文内容:如何使用QWidget来实现QDialog的常用功能,通过定义一个名为HDailog的类希望对大家理解QWidget...
阅读全文
2015-04-28 07:21 工业·编程 ⁄ 共 3258字 评论 1 条
在漫谈QWidget及其派生类(二)一文的最后我们简单提到了QMainWindow的一些东西。但是内容太少了,本文中我们换个角度看看QMainWindow,希望大家能了解一点:与QWidget相比,其派生类QMainWindow也不过如此 例子一 上一篇太乱了,应该主要是缺少例子。我们这次改一改,直接上个例子看看: #include <QtGui/QtGui> class MainWindow:public QMainWindow { public: MainWindow() { menuBar()->...
阅读全文