简单QT应用了可实现手动布局QT应用
2015-07-15 11:24
696 查看
新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
项目结构:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
2.打开QT图形编辑界面,通过拖动组件的方式生成例如以下界面:
3.为确定button加入事件。
选中buttonà转到槽。截图例如以下:
点击clickedbutton,加入事件代码例如以下:
4以下是手动编写一个QT案例:
5.新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
项目结构:
编写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文件
新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
项目结构:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
2.打开QT图形编辑界面,通过拖动组件的方式生成例如以下界面:
3.为确定button加入事件。
选中buttonà转到槽。截图例如以下:
点击clickedbutton,加入事件代码例如以下:
4以下是手动编写一个QT案例:
5.新建QT项目
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast"border="0">
项目结构:
编写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=newQHBoxLayout;
layout2=newQHBoxLayout;
//layout3=newQVBoxLayout(this);
layout4=newQGridLayout(this);
btn1=newQPushButton;
edit1=newQLineEdit;
edit2=newQLineEdit;
edit3=newQLineEdit;
label1=newQLabel;
label2=newQLabel;//这个控件没有不论什么父控件
//第一种布局方式
//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()
{
//deletelayout1;在QT内部。不须要单独delete一个控件的指针
//QT的窗体在退出的时候会自己主动delete他相关的子控件
deletelabel2;
}
voidWidget::on_clicked()
{
inta=edit1->text().toInt();
intb=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>
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
Widgetw;
w.show();
returna.exec();
}
8.窗体的效果:
相关文章推荐
- QT designer中找不到setshown
- QT 下OpenCV显示图片
- Qt 5.5.0 Windows环境搭建
- Qt画银白色Macbook
- Qt4-5学习杂谈
- qt实现重新登录
- 解析Qt中QThread使用方法
- 解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文
- qt 5.0中HeaderView的setResiziMode无法使用的问题
- qt学习:Qt中statusBar,MessageBox和Timer的简单处理
- vs2010 中 qt窗口的提升
- 使用windeployqt令.exe在别的电脑里都能正常运行
- qt学习:Qt中Item Widget初步探索
- qt工程中Pro文件
- qt 的 signals宏和slots宏
- SPOJ QTREE7 lct
- qt学习:四种方法实现界面的显示功能
- QTabWidget
- QT toLocal8Bit奇怪的问题
- 【QT】 屏幕旋转、尺寸设置