简单QT应用到通过手写布局实现QT应用



  1. 新建QT项目

项目结构:

2.打开QT图形编辑界面,通过拖动组件的方式生成如下界面:

3.为确定按钮添加事件。选中按钮à转到槽,截图如下:

点击clicked按钮,添加事件代码如下:

 

4下面是手动编写一个QT案例:

5.新建QT项目

项目结构:

 

编写widget.h头文件

#ifndef
WIDGET_H

#define
WIDGET_H

 

#include
<QWidget>

#include
<QPushButton> 
//按钮对应的头文件

#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;  
//定义一个按钮

   
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.窗口的效果:
				
时间: 2024-10-30 13:18:11

简单QT应用到通过手写布局实现QT应用的相关文章

实现简单的手写涂鸦板(demo源码)

     在一些软件系统中,需要用到手写涂鸦的功能,然后可以将涂鸦的结果保存为图片,并可以将"真迹"通过网络发送给对方.这种手写涂鸦功能是如何实现的了?最直接的,我们可以使用Windows提供的GDI技术或GDI+技术来实现绘图功能.但是,要实现一个如此简单的涂鸦板,也不是那么容易的事情.幸运的是,我们可以直接使用OMCS提供的内置集成了这种功能的一个WinForm控件HandwritingPanel.       HandwritingPanel控件的主要接口如下图所示: /// &

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

iOS开发UI基础—手写控件,frame,center和bounds属性

一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:self action:@selector(click:) forContro

iOS开发中一些手写控件及其相关属性的使用_IOS

手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: 复制代码 代码如下: [btn addTarget:s

汉王发布首款中文手写iOS输入法,抢占先机

7月15日消息,iOS自带的输入法一直是被人诟病的一大短板,尤其是让中文用户痛苦不堪的拼音输入,这几乎成了iOS设备用户越狱的第一大理由.6月5日,苹果宣布iOS8系统将开放支持第三方输入法,这不得不说是第三方输入法开发者和厂商的福音,此举势必将掀起国内外输入法厂商在iOS平台的一番紧锣密鼓的布局. 抢占先机 首款亮相 谁能快速抢占入口,谁将最先占领用户心智.手写老大http://www.aliyun.com/zixun/aggregation/12821.html">汉王科技,作为嵌入式

保存手写签名

Android 提供了很多丰富.实用而且很有特色的功能.比如,语音识别.手写签名等等.本篇就为你介绍如何在android上进行个性化的手写签名.   首先大致说说需求:这是一个追求时尚.张扬个性的时代,我们希望在签名的地方,签名的是自己手写出来的很有个性的艺术字,而非根据手势识别出来的标准字体.   设计思路如下,在画板上进行签名(其实就是绘制图片),完成后保存为图片.然后将图片按照一定的比率进行缩放并显示在指定的位置.   这里给出一个实例,实例只是一个简单的例子,如有需要可以进行必要的扩展.

性能-一款手写笔记软件的实现方式及问题

问题描述 一款手写笔记软件的实现方式及问题 要实现安卓设备上的手写功能,一种实现方式是:利用安卓的手势识别,主要是GestureOverlayView这个类里的功能和方法,记录用户触摸和移动的轨迹,形成路径path.路径path实际上就是一些点的集合.将这些路径组合成的笔画形成一个bitmap.写入到一个重写过的edittext中,即实现了手写笔记软件的主要功能. 上面实现的手写内容当文字数量比较多时,比如达到1000字左右,就会出现一些性能的问题.比如,想在笔记的中间插入一个手写字,实际执行的

手写样式表:CSS语法全攻略(1)

css|攻略|样式表|语法 放弃可视化编辑器写CSS 如果有看上篇的例子的CSS时,你可能会问,我在DW中要怎样做才能有像下面这样的CSS呢? .test1,.test2 {color:Purple !important;color:blue;} 手写,在DW也有代码区,而且是有智能提示的,等于半手动写,本人一直用TopStyle,除了对中文的支持不是很好外,各方面都不错.在学C#的那段时间,发现VS.NET写CSS也很不错,就是有点大. 为什么不能用可视化编辑器写CSS呢?理由很简单,手写CS

MathType手写面板怎么设置

  MathType手写面板怎么设置         首先,要在MathType编辑界面中调出输入面板,这个过程也是很简单的.在打开MathType公式编辑器后,直接在MathType编辑界面的菜单中点击"编辑"--"打开数学输入面板". 编辑MathType菜单中的"编辑"--"打开数学输入面板" 此时会弹出一个如下图所示的手写输入面板. 弹出手写输入面板 在这个手写输入面板中,你直接移动鼠标面板中就会出现相应的书写痕迹,完