ubuntu16下用QT5实现对话框应用
ubuntu16下用QT5,实现对话框程序,步骤:生成界面Dialog.ui,将它应用到主程序,通过主程序显示。
一 界面练习
1 Dialog.ui界面生成
在命令行输入:designer
进入界面编辑,然后生成MyDialog.ui,下图为本例的界面

2 将Dialog.ui文件拷贝到当前project下,并“添加现有”到本工程
3编辑main.cpp文件:
#include <QDialog>
#include <QApplication>
#include <ui_mydialog.h> //注意将mydialog.ui的名字重命名ui_mydialog.h,此文件暂时没有,不用担心编译不过,预编译会自动将它补上。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Ui::mydialog ui;
QDialog *dialog = new QDialog; // 生成一个普遍的对话框dialog
ui.setupUi(dialog); // 将dialog与当前用户自定义界面绑定
dialog->show(); // 输出此对话框
return a.exec();
}
二 让界面有用
在以上基础上,要想生成自己“有用”界面,需要做如下处理,首先,构建你自己的对话框,它的来历是双继承完成的,即你的对话框又继承界面Dialog.ui
还继承系统QDialog,让系统消息和界面事件共同起作用。如图:

构建头文件dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include "ui_dialog.h"
class myDialog : public QDialog, public Ui::Dialog
{
Q_OBJECT
public:
myDialog(QWidget *parent = );
private slots:
void on_lineEdit_textChanged();
};
#endif // DIALOG_H
和实现文件:dialog.cpp
#include <QtGui>
#include "dialog.h" myDialog::myDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
lineEdit->setValidator(new QRegExpValidator(regExp, this));
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
} void myDialog::on_lineEdit_textChanged()
{
okButton->setEnabled(lineEdit->hasAcceptableInput());
}
修改main.cpp
#include <QDialog>
#include <QApplication>
#include <dialog.h> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
myDialog *dialog = new myDialog;
dialog->show();
return a.exec();
}
通过以上三个步骤,编译程序,只要点击OK按钮能够有所反应,说明构建基本完成。
ubuntu16下用QT5实现对话框应用的更多相关文章
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- Linux系统下 解决Qt5无法连接MySQL数据库的方法
Linux平台下解决Qt5连接mysql数据库的问题:输入sudo apt-get install libqt5sql5-mysql解决,这种方法只能解决Qt是用sudo apt-get instal ...
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
详细说明:Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法.该方法可以在运行时在内存中直接建立对话框资源,使用起来更为灵活.适用于多个开发项目共享有界面的公用程序模 ...
- linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- python3下调用系统massagebox对话框
#python3下调用系统massagebox对话框#先安装pwin32插件https://github.com/mhammond/pywin32/releases import win32apiim ...
- android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动
android 闹钟提醒并且在锁屏下弹出Dialog对话框并播放铃声和震动 1.先简单设置一个闹钟提醒事件: //设置闹钟 mSetting.setOnClickListener ...
- linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
- VS2012下自定义打开文件对话框
VS2012下自定义打开文件对话框,MFC的CFileDialog封装了太多,太复杂,绕得头晕,自己封装一个得了 #pragma once #include <objbase.h> #in ...
- Ubuntu16.04下安装QT5.8
https://blog.csdn.net/hhrock/article/details/61621044
随机推荐
- LocalDate常用技巧
LocalDate是Java8新增的处理日期的类,使用起来比java.utils.date方便了许多.记录一些常用技巧: // 取当前日期: LocalDate today = LocalDate.n ...
- sed语法
Sed 命令行 以下是我们可以指定单引号在命令行sed命令的格式如下: sed [-n] [-e] 'command(s)' files 例子 考虑一下我们有一个文本文件books.txt待处理,它有 ...
- 2019-04-10-day029-粘包处理
内容回顾 osi五层协议 不是真实存在的,只是抽象出来的模型 应用层 传输层 TCP/UDP TCP :全双工,可靠的,面向连接的,速度慢,对数据大小没有限制 建立连接 :三次握手 SYN ACK 断 ...
- 剑指Offer 45. 扑克牌顺子 (其他)
题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决 ...
- linux的基本操作2
/dev/ha[a-d] IDE硬盘(过时了)/dev/sd[a-p] U盘,scsi,sata,ssd硬盘(流行)/dev/cdrom 光盘 CD-ROM/dev/mouse 鼠标 fdisk ...
- Javascript 2.8
声明函数声明参数 function multiply(A,B,...N){}; 用return可以返回一个值/字符串/数组/布尔值 变量命名的Camel记号:从第二个单词开始把每个单词的首字母大写,其 ...
- 使用vsftp服务传输文件
- Qt5 中文乱码问题
在做gui界面时,使用QTdesigner设计时,控件的名称等输入中文没有问题.为了更加灵活点,直接使用代码进行布局就很有必要了.这样就会出现中文的乱码.为了解决乱码,查看资料说时修改文件保存的编码, ...
- java 从一个工程action 跳转到另外一个工程action
实现功能:java 从一个工程action 跳转到另外一个工程action 在我们实际编程的过程中,大家一定遇到过这种情况,那就是在一个工程中,需要使用到另外一个工程的实体Bean和方法.那么遇到这种 ...
- yuan先生博客链接
Yuan先生的博客网址 1 Web应用 https://www.cnblogs.com/yuanchenqi/articles/8869302.html 2 http协议 https://www ...