
QT
scwMason
一个怀揣梦想的有志青年
展开
-
常用控件说明
这是容器类控件,我们选择了一个容器这个容器是根据页来装入其他控件的,现在我们在它的两页中添加一个按钮然后我们在外面添加一个切换页的按钮然后右键这个按钮---->转到槽----->选择一个信号,就会自动生成槽函数:然后写上代码:void MainWindow::on_pushButton_3_clicked(){ static int ...原创 2018-07-16 23:57:50 · 327 阅读 · 0 评论 -
带参数的信号
具体代码模板见《创建多个窗口》信号函数可以重载:signals: void mySlot(); void mySlot(int,QString);然后定义这两个函数:void SubWidge::sendSlot(){ emit mySlot(); emit mySlot(250,"I Love You");}并且利用函数指针分别创建:void (SubWidg...原创 2018-07-15 13:30:27 · 433 阅读 · 0 评论 -
Lamba表达式
首先在pro文件中添加一个:CONFIG+=c++11QPushButton *b4=new QPushButton(this); b4->setText("Lamba"); int a=10,b=20; connect(b4,&QPushButton::released, [=]() { ...原创 2018-07-15 15:56:05 · 385 阅读 · 0 评论 -
菜单栏和工具栏
我们跟着一个例子的代码看着注释讲:#include "mainwindow.h"#include<QMenu>//菜单栏需要的头文件#include<QMenuBar>//菜单栏需要的头文件#include<QAction>//添加动作头文件#include<QDebug>//输出函数的头文件#include<QPushButton&...原创 2018-07-15 17:12:26 · 408 阅读 · 0 评论 -
模态和非模态对话框、关于对话框、问题对话框和文件对话框
先演示一下:模态对话框就是父对话框产生子对话框以后不能托动的,非模态框相反效果:问题对话框:QAction *p4=menu->addAction("问题对话框"); connect(p4,&QAction::triggered, [=]() { int ret=QMessageBox::questio...原创 2018-07-15 21:04:27 · 224 阅读 · 0 评论 -
QT中的简单TCP
一.服务端首先,我们要在pro文件中加上一句:QT +=network编译一下然后这样创建好ui,并且将三个按钮转到槽在父类中写上:private: QTcpSocket *tcpSocket;//通信套接字我们先写connect按钮点击的槽函数:void ClienWdiget::on_buttonconnect_clicked()...原创 2018-07-21 20:28:56 · 230 阅读 · 0 评论 -
QT中的多线程(一)
问题描述:现在有这样一个计时器,它需要一边走动,一边计算一个复杂度很高的计算(需要5秒),但是单线程的时候,这个5秒的计算会堵住,导致线路阻塞,所以我们需要两条线路mythread.h#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>class myThread : public QThread...原创 2018-07-31 23:42:08 · 270 阅读 · 0 评论 -
对于QT中的多线程经验总结
下面是我所遇见的创建多线程的方式,以及怎样调用线程中的函数以及线程的传参问题一.利用信号和槽函数结合:在主线程中创建了一个线程指针对象myThread *mt;然后我们:mt=new myThread;//创建子线程thread=new QThread(this);//把自定义的线程加入到子线程中mt->moveToThread(thread);当我们...原创 2018-08-05 16:20:47 · 397 阅读 · 0 评论 -
QT中的多线程(二)
问题描述:简单的一个定时器,有开始和停止的功能,但是不断的在执行一个复杂的数据(需要两秒)这个是线程处理函数void myThread::myTimerout(){ while(1) { if(isStop) { break; } QThread::sleep(2); ...原创 2018-08-01 13:49:33 · 486 阅读 · 0 评论 -
在线程中画图
点击按钮一次,就会画出一个五边形思路讲解:先点击按钮:connect(ui->pushButton,&QPushButton::pressed,myt,&myThread::drawImage);调用drawImage处理函数创造的线程处理函数,先在500*500的大小下画一个五边形void myThread::drawImage(){ ...原创 2018-08-01 15:52:25 · 1215 阅读 · 0 评论 -
QT小项目——截图工具制作
点击新建截图按钮://点击新建截图的时候void myWidget::on_newScreenbutton_clicked(){ if(ui->checkBox->isChecked()) { this->hide(); } QTimer::singleShot(ui->spinBox->value()*1...原创 2018-08-03 11:01:46 · 978 阅读 · 1 评论 -
QT中设置按钮快捷键
一.通过代码是实现现在有一个保存的按钮,我们需要按Ctrl+S来实现快快捷保存ui->savebutton->setShortcut(QKeySequence(QLatin1String("Ctrl+S")));这样就可以了 二.设置按钮的UI按钮的界面中有一额个shorcut,我们只要键盘输入Ctrl+S就会自动加上去,实现快捷键...原创 2018-08-03 13:26:16 · 8271 阅读 · 0 评论 -
QT项目-----图片转换工具项目总结
项目总结:1.QFileDialog::getExistingDirectory这是获取打开文件夹路径的方法,用Qstring接收 2.QDir dir(path)path是选择文件夹路径。这样就表示dir就是所选的文件夹了,需要头文件QDir 3.QFileInfoList inforList = dir.entryInfoList(QDir::Files);in...原创 2018-08-08 09:49:47 · 414 阅读 · 0 评论 -
QT----数据库连接
先要在.pro中增加: QT += core gui sql并且我们需要头文件:#include<QSqlDatabase>我们可以打印一下QT支持的数据库驱动:qDebug()<<QSqlDatabase::drivers();我们打印出:("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", &原创 2018-08-21 21:11:17 · 218 阅读 · 0 评论 -
创建多个窗口
我们在这里实验的是创建两个窗口,每个窗口中有两个按钮,点击其中一个会隐藏当前窗口,显示另一个窗口这是我们的项目栏: 首先我们在mainwindow.h中创建一个按钮,命名为“切换到子窗口”然后在mainwindow.cpp中:MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ ...原创 2018-07-15 10:28:22 · 1729 阅读 · 0 评论 -
TCP文件传输
服务端界面:在pro文件中写上QT += core gui networkCONFIG+=c++11这是一些需要的头文件:#include<QTcpServer>//监听套接字#include<QTcpSocket>//通信套接字#include<QFile>#include<QTimer>#inc...原创 2018-07-25 22:51:11 · 1031 阅读 · 0 评论 -
QFileInfo获取文件信息
它可以获取很多文件的信息,比如文件的大小,文件的类型,文件的创建日期等等下面是获取一些文件信息的方法:先要头文件:#include<QFileInfo>QFileInfo info(path); qDebug()<<QString(QStringLiteral( "The file's name is")) <...原创 2018-07-20 13:04:30 · 813 阅读 · 0 评论 -
自定义控件(登陆界面)小案例
我们先是利用布局实现了这样的界面:然后我们创建一个新的类smallWidge,用来表示上面框起来的那个容器我们把这个容器提升为widge之后,写上类名是smallWidge然后写上代码:#include "smallwidge.h"#include<QSpinBox>//上下调动框头文件#include<QSlider>//滑块头文件#inclu...原创 2018-07-17 10:56:29 · 745 阅读 · 0 评论 -
事件
1.鼠标点击事件:void myQlabel::mousePressEvent(QMouseEvent *event){ int i=event->x();//获取鼠标点击的地方横坐标 int j=event->y();//获取鼠标点击地方的纵坐标 if(event->button()==Qt::LeftButton)//如果是鼠标左键点击的话 ...原创 2018-07-18 13:13:18 · 178 阅读 · 0 评论 -
QT种的UDP文本传输
widget.h:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include<QUdpSocket>//UDP套接字namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: exp...原创 2018-07-23 22:16:02 · 533 阅读 · 0 评论 -
QTimer定时器制作
首先创建定时器对象:private: QTimer *myTimer;然后构造函数:Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); myTimer=new QTimer(this); conn...原创 2018-07-23 22:20:59 · 477 阅读 · 0 评论 -
事件的接收和忽略
accept()和ignore()这里就主要将一个例子:当点击关闭窗口的时候,会跳出来一个对话款,问你是不是要关闭先在基类中定义:void closeEvent(QCloseEvent *event);然后在包含了头文件#include<QMessageBox>之后void Widget::closeEvent(QCloseEvent *event){...原创 2018-07-18 13:49:42 · 220 阅读 · 0 评论 -
QT中创建背景图片
先定义了了一个protected的方法:protected: void paintEvent(QPaintEvent *);然后在相应的.cpp文件中写上:void Widget::paintEvent(QPaintEvent *){ QPainter painter(this); QPixmap pixmap("D:\\QT\\DEMO\\day_03\\p...原创 2018-07-19 11:51:47 · 305 阅读 · 0 评论 -
简单绘图
先包含头文件#include<QPainter>创建函数:protected: void paintEvent(QPaintEvent *);在函数内部创建画家:QPainter painter(this); 1.画笔头文件:#include<QPen>创建画笔:QPen pen; pen.setWidth...原创 2018-07-19 14:18:12 · 380 阅读 · 0 评论 -
手动刷新窗口
我们通过一个例子实现,先看效果:不断点击按钮,实现笑脸的走动首先在UI中创建一个按钮,转到槽然后在paintEvent( )方法中写上void Widget::paintEvent(QPaintEvent *){ QPainter painter(this); painter.drawPixmap(x,200,50,50,QPixmap("D:\\QT\\Ima...原创 2018-07-19 14:56:46 · 880 阅读 · 0 评论 -
事件过滤器
我们先在ui中创建两个label然后再mywidget.h中:protected: bool eventFilter(QObject *watched, QEvent *event); 然后在.cpp中#include "mywidget.h"#include "ui_mywidget.h"#include<QEvent>#include&...原创 2018-07-19 14:57:04 · 852 阅读 · 0 评论 -
不规则窗口
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); //去窗口边框 setWindowFlag(Qt::FramelessWindowHint); //把窗口背景设置成透明 setAttribute(Qt::WA_...原创 2018-07-19 16:44:24 · 282 阅读 · 0 评论 -
QFile文件
我们通过一个小案例来实现文件的读写工作:读文件read按钮是读入文本,write是写入文本首先我们将read按钮转到槽需要添加头文件:#include<QFile>#include<QFileDialog>然后写上槽函数代码:void Widget::on_pushButton_clicked(){ QString path=...原创 2018-07-20 10:13:05 · 2472 阅读 · 0 评论 -
指定父对象
1.设置一个窗口名称:函数setWindowTitile()#include<QApplication>//头文件#include<QWidget>//窗口控件基类int main(int argc,char **argv){ QApplication app(argc,argv); QWidget w;//创建对象 w.setWindowTi...原创 2018-07-14 11:35:50 · 814 阅读 · 1 评论 -
标准信号和槽 +自定义槽
main.cpp文件:mainwindow头文件:因为这里创建了MainWindow对象,所以我们尝试创建构造对像:#include "mainwindow.h"#include<QPushButton>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ b1.setParent(this)...原创 2018-07-14 12:51:46 · 577 阅读 · 0 评论 -
QT---操作MySQL
连接数据库:QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL","database1");//database是为了标识这个数据库 //连接数据库 db.setHostName("127.0.0.1");//设置数据库服务器IP db.setUserName("root");//数据库用户名 db.setPas...原创 2018-08-21 23:50:26 · 328 阅读 · 0 评论