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派生的类,却没...
QDesktopWidget, Qt阅读全文
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进行工作的...
Qt, 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::...
Qt阅读全文
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(...
Qt, 消息机制阅读全文
2015-05-12 08:01
⁄ 工业·编程
⁄ 共 3116字
延续前面从QProcess说开来(一)的名字,换个角度继续学习。
QIODevice派生类
QProcess作为QIODevice的派生类,实现角度上看,它必须要重新实现下面两个成员函数:
readData()
writeData()
而后,按照QIODevice的常规用法,我们
调用QIODevice::open()打开设备
使用QIODevice::read()/QIODevice::write()读写
使用QIODevice::close()关闭
实际上,我们的常规用法是:
常用代码
其调用父类成员
QProcess::start()...
QProcess, Qt阅读全文
2015-05-11 06:59
⁄ 工业·编程
⁄ 共 3014字
QProcess类的作用是启动一个外部的程序并与之交互。我们不妨看看:一个普通的控制台程序,与外界是如何交互的
简单控制台程序
一个程序如何从外界获取信息并向外输出信息呢?
方向
途径
获取
命令行参数
int main(int argc, char **argv)
标准输入
scanf()/getc()/getchar()/...
环境变量
getenv()
输出
标准输出
printf() ...
标准出错
fprintf(stderr,...)
返回值
r...
QProcess, Qt阅读全文
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...
Qt, QWidget阅读全文
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...
Qt, QWidget阅读全文
2015-04-30 04:25
⁄ 工业·编程
⁄ 共 3650字
漫谈QWidget及其派生类(三)中我们了QMainWindow到底是个什么东西,接下来就看看QDialog吧,没办法,谁让它这么常用呢?
很多人觉得QDialog比QWidget高级很多,为什么呢?
QDialog(this) 和 QWidget(this) 前者是窗口,后者不是。
QDialog 除 show()外,还有 exec() 和 open() 两个成员用来显示窗口。
QDialog ....
本文内容:如何使用QWidget来实现QDialog的常用功能,通过定义一个名为HDailog的类希望对大家理解QWidget...
Qt, QWidget阅读全文
2015-04-28 07:21
⁄ 工业·编程
⁄ 共 3258字
在漫谈QWidget及其派生类(二)一文的最后我们简单提到了QMainWindow的一些东西。但是内容太少了,本文中我们换个角度看看QMainWindow,希望大家能了解一点:与QWidget相比,其派生类QMainWindow也不过如此
例子一
上一篇太乱了,应该主要是缺少例子。我们这次改一改,直接上个例子看看:
#include <QtGui/QtGui>
class MainWindow:public QMainWindow
{
public:
MainWindow()
{
menuBar()->...
Qt, QWidget阅读全文