qtday01 ubuntu 下手动编写第一个qt程序

简介: //qt 5.2.1 //1t目录下 //1t.cpp /*  第一个qt程序  */ #include #include #include #include int main(int argc,char** argv){ ...
//qt 5.2.1
//1t目录下
//1t.cpp
/*
 第一个qt程序
 */
#include <QApplication>
#include<QtWidgets/QLabel>
#include<QString>
#include<QTextCodec>
int main(int argc,char** argv){
    /*构造一个对象*/
    QApplication app(argc,argv);
    QTextCodec* coder=QTextCodec::codecForName("utf-8");
    /*设置编码对象*/
//    QTextCodec::setCodecForTr(coder);
    //set code to the words
    //QLabel qlab(QObject::tr("hello qt你好 ,today is a nice day!"));
    QLabel qlab(coder->toUnicode("hello qt你好 ,today is a nice day!"));
    qlab.show();
    /*让程序进入事件循环*/
    return app.exec();
}
//在1t目录下,输入命令:
//qmake -project  --生成 .pro文件
//vi 1t.pro    在最后加一行  QT+=widget
//qmake           --生成Makefile文件
//make            --执行Makefile文件,生成最终可执行文件
//./1t            --运行程序


//在2t目录下
//2t.cpp
#include<QApplication>
#include<QtWidgets/QLabel>
#include<QtWidgets/QPushButton>//按钮
#include<QWidget>//窗口对象
#include<QObject>
#include<QSlider>
#include<QSpinBox>
int main(int argc,char* argv[])
{
    QApplication app(argc,argv);
    /*堆空间,创建窗口*/
    QWidget * parent=new QWidget();
    parent->resize(400,300);//设置窗口大小
    //
    QSlider * qsli;
    QSpinBox* qspin;
    qsli=new QSlider(parent);
    qspin=new QSpinBox(parent);
    qsli->move(0,20);
    qsli->resize(20,150);
    qspin->move(40,20);
    /*标签*/
    QLabel qlab("second label",parent);
    //qlab.show();
    /*按钮*/
    QPushButton qb1("close win",parent);
    qb1.resize(80,20);
    qb1.move(160,180);//设置按钮位置(居左上角)
    QPushButton qb("close label",parent);
    qb.resize(80,20);
    qb.move(160,160);//设置按钮位置(居左上角)
    /*信号函数(SIGNAL()转换)*/
    /*槽函数(SLOT()转换),    槽函数可当做成员函数用*/
    qspin->setValue(10);
    /*按钮的clicked()函数触发标签的close()事件,关闭label*/
    QObject::connect(&qb,SIGNAL(clicked()),&qlab,SLOT(close()));
    QObject::connect(&qb1,SIGNAL(clicked()),&app,SLOT(quit()));
    QObject::connect(qsli,SIGNAL(sliderMoved(int)),qspin,SLOT(setValue(int)));
    
    //关闭整个程序
    //QObject::connect(&qb,SIGNAL(clicked()),&app,SLOT(quit()));
    
    //qb.show();
    parent->show();
    app.exec();
}

//与1t执行方法一样


相关文章
|
9月前
|
Web App开发 存储 Linux
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
560 0
|
9月前
【QT】读写.ini配置文件的程序实现
【QT】读写.ini配置文件的程序实现
143 0
|
7月前
|
Linux iOS开发 开发者
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
581 3
|
5月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
9月前
|
开发框架 自然语言处理 Linux
Qt:构建强大跨平台应用程序的框架
Qt:构建强大跨平台应用程序的框架
|
5月前
|
Ubuntu NoSQL
ubuntu上安装某个程序的符号表和源码包
ubuntu上安装某个程序的符号表和源码包
|
7月前
|
调度
【浅入浅出】Qt多线程机制解析:提升程序响应性与并发处理能力
在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上书写逻辑时碰到了需要一直等待的事件该怎么办?它的加载必定会带着主界面的卡顿,这时候我们就要去使用多线程。
208 6
|
9月前
|
人工智能 编译器 C++
新版Qt6快速打包程序脚本
不知道啥时候Qt更新了,目前是6.7.0,项目默认的生成路径改了, 从 项目目录的同级目录 改为了 项目目录中的build目录, 之前的脚本也用不了了,所以用AI更新了一下脚本, 希望能帮到大家,方便快速打包程序到桌面。
215 9
|
8月前
Qt MainWindow 程序主窗口
Qt MainWindow 程序主窗口
115 0