您的位置:首页 > 编程语言 > Qt开发

简单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文件

#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.窗体的效果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: