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();
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.