简单QT应用了可实现手动布局QT应用
新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
项目结构:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
2.打开QT图形编辑界面,通过拖动组件的方式生成例如以下界面:
3.为确定button加入事件。
选中buttonà转到槽。截图例如以下:
点击clickedbutton,加入事件代码例如以下:
4以下是手动编写一个QT案例:
5.新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
项目结构:
编写widget.h头文件
#ifndef
WIDGET_H
#define
WIDGET_H
#include
<QWidget>
#include
<QPushButton>
//button相应的头文件
#include
<QVBoxLayout>
//布局,这个中布局让组件上下显示
#include
<QHBoxLayout>
//这个布局让组件水平显示
#include
<QGridLayout>
//Grid表格布局的头文件
#include
<QLineEdit>
//单行文本框相应的头文件
#include
<QLabel> //Label相应的头文件
class
Widget
:
public
QWidget
{
Q_OBJECT
public:
Widget(QWidget
*parent=
0);
~Widget();
private:
QPushButton
*btn1;
//定义一个button
QHBoxLayout
*layout1,
*layout2;
//两个布局
QVBoxLayout
*layout3;
QGridLayout
*layout4;
QLineEdit
*edit1,*edit2,*edit3;
QLabel
*label1;
QLabel
*label2;
private
slots:
//这里表示的是事件
void
on_clicked();
};
#endif
//
WIDGET_H
6.编写widget.cpp文件
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
layout1 = new QHBoxLayout;
layout2 = new QHBoxLayout;
//layout3 = new QVBoxLayout(this);
layout4 = new QGridLayout(this);
btn1 = new QPushButton;
edit1 = new QLineEdit;
edit2 = new QLineEdit;
edit3 = new QLineEdit;
label1 = new QLabel;
label2 = new QLabel;//这个控件没有不论什么父控件
//第一种布局方式
// layout1->addWidget(btn1);
// layout1->addWidget(edit1);
// layout1->addWidget(edit2);
// layout1->addWidget(edit3);
// layout2->addWidget(label1);
// layout3->addLayout(layout1);
// layout3->addLayout(layout2);
layout4->addWidget(btn1, 0, 0);
layout4->addWidget(edit1, 0, 1);
layout4->addWidget(edit2, 0, 2);
layout4->addWidget(edit3, 1, 0);
layout4->addWidget(label1, 1, 1);
btn1->setText("确定");
//当点击了btn1的时候就调用on_clicked()这个函数
//实现控件与详细的槽函数关联
connect(btn1, SIGNAL(clicked()), this, SLOT(on_clicked()));
}
Widget::~Widget()
{
//delete layout1;在QT内部。不须要单独delete一个控件的指针
//QT的窗体在退出的时候会自己主动delete他相关的子控件
delete label2;
}
void Widget::on_clicked()
{
int a = edit1->text().toInt();
int b = edit3->text().toInt();
if (edit2->text() == "+")
label1->setText(QString::number(a + b));
if (edit2->text() == "-")
label1->setText(QString::number(a - b));
if (edit2->text() == "*")
label1->setText(QString::number(a * b));
if (edit2->text() == "/")
{
if (b != 0)
label1->setText(QString::number(a / b));
}
}
7.main.cpp文件
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
8.窗体的效果:
版权声明:本文博客原创文章。博客,未经同意,不得转载。
简单QT应用了可实现手动布局QT应用的更多相关文章
- Qt之手动布局
简述 手动布局,可以实现和水平布局.垂直布局.网格布局等相同的效果,也可实现属于自己的自定义布局,当窗体缩放时,控件可以随之变化. 其对于坐标系的建立有严格要求,纯代码思维,使用复杂,不易维护,所以一 ...
- Qt基本控件及三大布局
Qt基本控件及三大布局 来源: http://blog.csdn.net/a2604539133/article/details/73920696 Qt基本模块 一.Qt的三大布局 QHBoxLayo ...
- QT学习记录之控件布局
作者:朱金灿 来源:http://blog.csdn.net/clever101 想到控件布局就会想到Windows编程中要实现对话框上的控件的合理布局是一件多么艰难的事情.对此QT提出了一个很方便的 ...
- [Qt Creator 快速入门] 第1章 Qt Creator简介
Qt Creator 是一个跨平台的.完整的 Qt 集成开发环境,其中包括了高级C++代码编辑器.项目和生成管理工具.集成的上下文相关的帮助系统.图形化调试器.代码管理和浏览工具等.这一章先对 Qt ...
- Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)
Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Q ...
- [Qt Creator 快速入门] 第2章 Qt程序编译和源码详解
一.编写 Hello World Gui程序 Hello World程序就是让应用程序显示"Hello World"字符串.这是最简单的应用,但却包含了一个应用程序的基本要素,所以 ...
- Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...
- Qt 4.6: A Quick Start to Qt Designer
Qt 4.6: A Quick Start to Qt Designer A Quick Start to Qt Designer Using Qt Designer involves four ba ...
- Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "",已解决
语言:c++ 编译库:Qt GUI,qt5.12.1 软件类型:Qt application,qt桌面软件 运行平台:window 10 ?按照[https://www.devbean.net/201 ...
随机推荐
- 让Linux开机运行命令
开机的时候需要linux 自动执行命令很简单 只需要把要执行的命令输入操作系统启动的时候要加载的文件里面就行了,一般写在 /etc/rc.local里面 #vim /etc/rc.local 按o键 ...
- Android平台调用Web Service:螺纹的引入
连接文本 剩下的问题 MainActivity的onCreate方法中假设没有有这段代码: // 强制在UI线程中操作 StrictMode.setThreadPolicy(new StrictMod ...
- poj3176--Cow Bowling(dp:数塔问题)
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14028 Accepted: 9302 Desc ...
- ecshop中getAll ,getOne ,getRow的区别
ecshop的数据库抽象层其实就是在模仿adodb $GLOBALS['db']->getAll($sql);//以二维关联数组返回所有数据 $GLOBALS['db']->getOne( ...
- uva:10700 - Camel trading(贪婪)
题目:10700 - Camel trading 题目大意:给出一些表达式,表达式由数字和加号乘号组成,数字范围[1,20].这些表达式可能缺少了括号,问这种表达式加上括号后能得到的最大值和最小值. ...
- GUI测试要点
本人测试知识还不完整,所以下面的文字总结自网络上的文章,红色字体为我平时的测试经验,如有雷同之处,还请见谅,仅自己学习之用. 转载请说明来自博客园--邦邦酱好. ------------------- ...
- 高速幂 POW优化
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h&g ...
- C#遍历FTP文件夹/下载
原文链接:http://blog.csdn.net/ou8811/article/details/5295780 整个程序大致可以分为2个部分,第一部分是实现单个文件下载的方法 [c-sharp] v ...
- 【j2ee spring】27、巴巴荆楚网-整合hibernate4+spring4(2)
巴巴荆楚网-整合hibernate4+spring4(2) 1.图文项目 2.首先我们引入对应的jar包 这里用的是oracle 11g,所以我们使用的数据库连接jar包是ojdbc6, 的区别就是支 ...
- Codeforces Round #258 (Div. 2) B. Sort the Array
题目链接:http://codeforces.com/contest/451/problem/B 思路:首先找下降段的个数,假设下降段是大于等于2的,那么就直接输出no,假设下降段的个数为1,那么就把 ...