QT点滴

1. QT的MessageBox

QT中也提供了类似与win32中 MessageBox的那样的东西:

QMessageBox,这个类中有几个静态的方法,供我们使用:

void about ( QWidget *parent, const QString &title, const QString &text )
void aboutQt ( QWidget *parent, const QString &title = QString() )
StandardButton critical ( QWidget *parent, const QString &title, const QString &text, StandardButtonsbuttons =
Ok, StandardButtondefaultButton = NoButton )
StandardButton information ( QWidget *parent, const QString &title, const QString &text, StandardButtonsbuttons
= Ok, StandardButtondefaultButton = NoButton )
StandardButton question ( QWidget *parent, const QString &title, const QString &text, StandardButtonsbuttons =
Ok, StandardButtondefaultButton = NoButton )
StandardButton warning ( QWidget *parent, const QString &title, const QString &text, StandardButtonsbuttons = Ok,
StandardButtondefaultButton = NoButton )

比如我们想弹出个提示的对话框:

QMessageBox::information( this, “Titile”, “this is information for you”, QMessagBox::Yes );

2. QT的printf/count

qDebug( “” )

qWarning( “” )

3. Qt creator中如果想用某个控件的SIGNAL,但是不知道你想要的SIGNAL叫什么名字,这时候,你可以将鼠标点击到该类上面,然后按F1可以迅速切换到该类的帮助文档,查看都提供了哪些SIGNAL。

 

4. 用qt提供的Designer,windows的qt sdk没有提供这个软件,linux下面你可以通过相应的安装包管理工具,如Fedora下面,你可以用:

yum search qt*

来查看当前跟qt相关的包是什么样子,一般选择带有devel字样就可以。

 

5. 在qt Designer中编辑出来的界面,最后会被保存成*.ui的文件,然后用qmake就可以生成对应的头文件。ui文件我们可以用utrleditor(windows 下面)或者kwriter(linux)打开,其实里面就是一个xml格式的文件,这个文件中用树状结构描述了,整个界面的组织结构,每个界面元素的描述,大小,名字,位置等等。

用qmake来生成ui头文件的命令如下, 假设我们ui文件名字是mytest.ui。记得执行下列命令前,cd当前路径到ui文件所在的目录。

qmake -project

qmake mytest.pro

然后你会看到在当前目录下面多了一个ui_mytest.h的文件,打开这个文件,你可以看到里面是用c++语言重新描述了我们的xml的ui文件。

其实如果只是单单想把ui文件转成对应的h文件,不需要生成工程的话,uic就可以:

uic –o test.h test.ui

现在你可以把这个文件复制到任何你自己的工程目录,然后包含这个文件,这个界面就导入到你的工程了。具体的步骤请参看<<c++ GUI programming with qt4>>的part1->chapter2->Rapid Dialog Design。

 

6. 其实我们用qt Designer设计的这种界面,你完全可以在代码中实现,步骤是创建控件,添加控件,设置控件的布局;还有一种方式就是在qml文件中,使用类似脚本的语言来描述。

7. linux下面如果安装了qt,可以通过qtcreator命令来启动qt

8. QT的SIGNAL和SLOT是同步的,emit 一个SIGNAL后,必须对应的SLOT返回后,emit这次调用才返回。

9. QString 转换为std::string

QString str;

str.toStdString();

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *