热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QT——可视化界面ui

目录1.需要文件2.文件关系及编写3.源码4.界面的模态与非模态1.需要文件test.cpptest.htest.uiui_test.h2.文件关系及编写tes

目录

1. 需要文件

2.文件关系及编写

3. 源码

4. 界面的模态与非模态




 


1. 需要文件

test.cpp

test.h

test.ui

ui_test.h


2.文件关系及编写

test.ui: 可视化界面;

test.cpp: 启动可视化界面,及可视化界面的各种相关功能源文件;

test.h: 头文件,类名就是ui的objectName;

ui_test.h: 会自动生成;


3. 源码

ui->setupUi(this):

对界面进行初始化,它按照Qt设计器里设计的样子把窗体画出来,把Qt设计器里面定义的信号和槽建立起来。

#include "test.h"
#include "ui_test.h"
#include
testC::testC(QWidget *parent):
QDialog(parent),
ui(new Ui::testC)
{
// 不显示问号
Qt::WindowFlags flags = Qt::Dialog;
flags |= Qt::WindowCloseButtonHint;
setWindowFlags(flags);
ui->setupUi(this);
setFixedSize(200, 200); // 不能伸缩的对话框
}
testC::~testC()
{
delete ui;
}
void testC::test_fun()
{
QMessageBox msgBox;
msgBox.setText("This is a test function!");
msgBox.exec();
}
void testC::on_test_clicked()
{
test_fun();
}

         C++中,命名空间使用namespace来声明,并使用{ }来界定命名空间的作用域,C++中标准命名空间std,std 是 standard 的缩写,意思是“标准命名空间”;C++标准库中的函数或者对象都是在命名空间std中定义的;Qt中有自带namespace:

#ifndef TEST_H
#define TEST_H
#include
#include
namespace Ui {
class testC;
}
class testC : public QDialog
{
Q_OBJECT
public:
explicit testC(QWidget *parent = Q_NULLPTR);
~testC();
private slots:
void test_fun();
void on_test_clicked();
private:
Ui::testC *ui;
};
#endif // TEST_H

4. 界面的模态与非模态

testC::testC(QWidget *parent):
QDialog(parent),
ui(new Ui::testC)
{
// 不显示问号
Qt::WindowFlags flags = Qt::Dialog;
flags |= Qt::WindowCloseButtonHint;
setWindowFlags(flags);
ui->setupUi(this);
setFixedSize(200, 200); // 不能伸缩的对话框
setModal(false); // 非模态对话框
show();
}

这样就是非模态窗口,非模态就是弹窗和主窗口互不阻塞,弹出子窗口,仍然可以操作主窗口。



推荐阅读
author-avatar
手机电视2602907765
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有