读书人

将QT里的.ui生成.h资料并在.cpp中对

发布时间: 2012-07-24 17:47:58 作者: rapoo

将QT里的.ui生成.h文件,并在.cpp中对.ui中的控件写事件及支持中文

by zxy,Java/C++编程交流群QQ:168424095

在上一篇文章的基础上:
(1)双击mainwindow.ui,在窗体中增加一个pushButton保存
(2)开始->运行->输入cmd回车,cd到.ui所在的位置:C:\Qt\qtcreator-2.5.0\gui\gui输入
uic -o temp.h mainwindow.ui 可以看到C:\Qt\qtcreator-2.5.0\gui\gui文件夹下多了一个temp.h文件
将此temp.h的内容替换C:\Qt\qtcreator-2.5.0\gui\gui-build-desktop-Qt_4_8_1__qmake____中ui_mainwindow.h中的内容
(3)用信号槽来处理
mainwindow.h中增加对事件槽的声明:
class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
Ui::MainWindow *ui;
private slots:
void on_pushButton_clicked();
};

对于click点击事件,qt中硬性规定为 on_控件ID_clicked();
例如ID为pushButton的button控件,我们只用在class的head里面写
prvate slots:
void on_pushButton_clicked();

mainwindow.cpp中增加 #include <QMessageBox>
void MainWindow::on_pushButton_clicked()
{
QMessageBox::information(this,tr("提示"),tr("点击了pushButton"));
}

支持中文修改main.cpp
#include <QApplication>
#include "mainwindow.h"
#include <QTextCodec>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
//设置中文开始
QTextCodec *codec = QTextCodec::codecForName("System"); //获取系统编码
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
w.show();

return a.exec();
}

读书人网 >其他相关

热点推荐