2015-05-26 08:25
⁄ 工业·编程
⁄ 共 3727字
在Qt中,键盘事件和QWidget的focus密不可分:一般来说,一个拥有焦点(focus)的QWidget或者grabKeyboard()的QWidget才可以接受键盘事件。
键盘事件派发给谁?
如何确定谁来接收键盘事件,不妨看一点点QApplication的源码:
X11下
QETWidget *keywidget=0;
bool grabbed=false;
if (event->type==XKeyPress || event->type==XKeyRelease) {
keywidget = (QETWidget*)QWidget::keyboardGrabber();
...
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进行工作的...
Qt, QWidget阅读全文
2015-05-24 07:19
⁄ 工业·编程
⁄ 共 1991字
从Qt4.4开始,Alien Widget被引入。那么...这是什么东西呢,我们在使用中又可能会感受到什么东西?
用例子来说话似乎比用源码来说话来得容易,所以看例子:
例子
一个小例子: 创建 a -> b -> c -> d -> e 共5个widget
考虑它们各自的
parentWidget()
nativeParentWidget()
window()
分别返回什么呢?
#include <QtGui>
#include <QtCore>
class Widget:public QWidget
{
public:
Widge...
QWidget阅读全文
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阅读全文
2015-04-27 06:20
⁄ 工业·编程
⁄ 共 4293字
本文接下来试图看看 QLayout 与窗口的几何尺寸控制。
注意:本文只是试图解释,QLayout其实没有任何神秘的东西,它所有的功能离开它你也都可以做。但这并不是鼓励大家不使用QLayout。
始终记住一点:要改变一个Widget的大小,只有move()、resize()、setGeometry()这3个东西可用,当然,对于带装饰器的顶级窗口,你还可以通过鼠标等改变大小或移动窗口位置(但这个不在本文讨论范围内)。
相关阅读
----漫谈QWi...
Qt, QWidget阅读全文
2015-04-26 06:17
⁄ 工业·编程
⁄ 共 2043字
对于QWidget,总觉得该写点什么。可又不知道具体该写些什么,思路又乱又杂。简单理理,简单写写,就叫漫谈吧
注意:我不知道本文写完会是什么样子,可能写着写着就没下文了。也可能各部分隔很长时间。
注意:本系列涉及到的东西都是Qt用户需要理解的,但是,我们不应该在实际项目中这么用。
QWidget
QWidget 是Qt中所有widget部件(比如QDialog、QPushButton、QLabel)的基类。
任何你可以通过其派生类实现的东西,你都可...
Qt, QWidget阅读全文