Qt常用知识小汇总

一、Qt中显示中文

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));

 

二、设置字体的大小和颜色

QFont ft;

ft.setPointSize(14);  //set words size

//ft.setBold(true);     //words bold

        

QPalette pa;

pa.setColor(QPalette::WindowText, Qt::red);  //set words color

 

***->setFont(ft);

***->setPalette(pa);

 

三、设置Button的大小和Button上字体的大小并把Button设为透明

button = new QPushButton(tr("按钮"));

// button ->setGeometry(200, 50, 100, 100);  //设置Button位置和大小(无效)

// button ->resize(100, 100);  //设置大小(无效)

button ->setFixedSize(100, 100);  //设置大小

button ->setFont(QFont("按钮", 20));  //设置Button上的字体大小

button ->setStyleSheet("QPushButton{border-radius:5px;border-width:0px;}");  //透明

 

四、给Button设置背景图片

button ->setStyleSheet("QPushButton{background-image:url(F:/images/1.png);}");

//设置Button背景图片

button ->setStyleSheet("QPushButton{border-image:url(F:/images/1.png);}");

//设置Button背景图片并使图片自适应Button的大小

注意:语句一在Button上设置背景图片,但改变Button的大小图片大小不会改变。

语句二在Button上不但能设置背景图片,还能让图片自适应Button的大小即改变Buton的大小图片大小也会随之改变,并且不用在设置Button为透明。

 

五、设置QLineEdit为无边框效果和设置QLineEdit背景颜色

line->setStyleSheet("QLineEdit{border-width:0;border-style:outset}");

//设置QLineEdit无边框并注意其效果

line ->setStyleSheet("QLineEdit{background-color:rgba(0,0,0,0);

border-radius:15px;selection-color:pink}");

//设置背景颜色

modeLine->setReadOnly(true);  //只读

 

六、设置窗口大小并将其充满屏幕显示

//show the window

QWidget *widget = new QWidget;

widget->setLayout(mainLay);

widget->setFixedSize(1280, 800);  //set window size

setCentralWidget(widget);

 

//set window full screen

setWindowState(windowState() | Qt::WindowFullScreen);

this->setWindowFlags(Qt::FramelessWindowHint);

 

七、子窗口居中显示

//Set the window in the center of the screen

QDesktopWidget *desk = QApplication::desktop();

int wd = desk->width();

int ht = desk->height();

this->move((wd - width())/2,(ht - height())/2);

注意,必须加上以下两个头文件,否则错误:

#include

#include

 

八、窗口模态设置

//当为Dialog时

***->setWindowModality();

 

//当为QWinget时

***->setAttribute(Qt::WA_ShowModal, true);

 

九、画笔画线和画刷画一块区域

QPainter painter(this);

 

painter.setBrush(QBrush(QColor("pink"), Qt::SolidPattern));

painter.drawRect(0, 0, 1280, 800);

 

painter.setPen(QPen(Qt::black, 3));

painter.drawLine(0, 80, 1280, 80);  //paint a line

 

十、Qt播放WAV格式音频

QSounds类的实现

QSound继承自QObject类,用于访问平台的音频工具。用一个单一的调用就可以完成这样的一件事:

QSound::play("mysounds/bells.wav");

当建立一个声音文件对象, 以后再进行播放的时候,提供了第二个API:

QSound bells("mysounds/bells.wav");

bells.play();

第二种模式相对第一种模式,播放时可能会占用较多的内存,但播放的会更流畅直接些。

值得注意的是:(1)头文件 #include "qsound.h" (2)仅支持WAVE格式

 

十一、QTableWidget用法

1 创建

#include

#include

#include

 

 

QTableWidget *showTable = new QTableWidget;

showTable->setColumnCount(5);   //5列

showTable->setRowCount(100);    //100行

//等价于:QTableWidget * showTable = new QTableWidget(100,5);

 

showTable ->setWindowTitle("学生信息");

showTable ->resize(350, 200);

 

QStringList headers;

headers << "学 号" << "姓 名" << "性 别" << "年 龄" << "班 级";

showTable->setHorizontalHeaderLabels(headers);

 

showTable ->setItem(0,0,new QTableWidgetItem("1"));

showTable ->setItem(0,1,new QTableWidgetItem("张三"));

showTable ->setItem(0,2,new QTableWidgetItem("男"));

showTable ->setItem(0,3,new QTableWidgetItem("18"));

showTable ->setItem(0,4,new QTableWidgetItem("3班"));

 

showTable ->show();

 

2将表格变为禁止编辑

showTable ->setEditTriggers(QAbstractItemView::NoEditTriggers);

 

3设置表格为选择整行

showTable ->setSelectionBehavior(QAbstractItemView::SelectRows);

 

4设置单个选中和多个选中

showTable ->setSelectionMode(QAbstractItemView::ExtendedSelection);

//设置为可以选中多个目标

 

5表格表头的显示与隐藏(注意:需要 #include )

showTable ->verticalHeader()->setVisible(false);   //隐藏列表头

showTable ->horizontalHeader()->setVisible(false); //隐藏行表头

 

6设置具体单元格中字体格式(注意:需要 #include )

QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0);

//获得水平方向表头的Item对象

columnHeaderItem0->setFont(QFont("Helvetica")); //设置字体

columnHeaderItem0->setBackgroundColor(QColor(0,60,10)); //设置单元格背景颜色

columnHeaderItem0->setTextColor(QColor(200,111,30)); //设置文字颜色

 

7设置具体单元格的值

showTable ->setItem(1, 0, new QTableWidgetItem(str));

 

8设置具体单元格中字体格式

showTable ->item(1, 0)->setBackgroundColor(QColor(0,60,10));  

showTable ->item(1, 0)->setTextColor(QColor(200,111,100));

showTable ->item(1, 0)->setFont(QFont("Helvetica"));

 

9设置具体单元格中字体的对齐方式

showTable ->item(0, 0)->setTextAlignment(Qt::AlignHCenter);

 

10把QTableWidgetItem对象内容转换为QString

QString str = showTable t->item(0, 0)->data(Qt::DisplayRole).toString();

 

11在单元格里加入控件

         QTableWidget不仅允许把文字加到单元格,还允许把控件也放到单元格中。比如,把一个下拉框加入单元格,可以这么做:

QComboBox *comBox = new QComboBox();

comBox->addItem("Y");

comBox->addItem("N");

showTable ->setCellWidget(0,2,comBox);

 

12合并单元格

showTable ->setSpan(2, 2, 3, 2);

//第一个参数:要改变的单元格行数     第二个参数:要改变的单元格列数

//第三个参数:需要合并的行数         第四个参数:需要合并的列数

 

13具体单元格中插入图片

showTable ->setItem(3, 2, new QTableWidgetItem(QIcon("images/music.png"), "Music"));

 

14设置显示网格

showTable ->setShowGrid(true);//显示表格线

 

15设置单元格的大小

首先,可以指定某个行或者列的大小:

showTable ->setColumnWidth(3,200); 

showTable ->setRowHeight(3,60);

还可以将行和列的大小设为与内容相匹配:

showTable ->resizeColumnsToContents(); 

showTable ->resizeRowsToContents();

 

16添加表头内容

方法一

QStringList header;

header<<""<<tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5");

方法二

tableWidget->setHorizontalHeaderLabels(QStringList()  <<

                                   tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5"));

 

17获取某一单元格的内容

QString strText = showTable ->item(0, 0)->text();

 

18设置滚动条

showTable ->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条

 

19清除

showTable ->clear();  //清除所有可见数据(包括表头)

showTable ->clearContents();  //只清除表中数据(不清除表头内容)

 

20其他

int row = showTable ->rowCount();//获取表格中当前总行数

showTable ->setRowCount(row+1);//添加一行

showTable ->removeRow(row);//清除已有的行列

 

int row1 = showTable ->currentItem()->row();//当前选中行

 

bool focus = showTable ->isItemSelected(tableWidget->currentItem());//判断是否选中一行

 

QString proName = showTable ->item(row, col)->text();//获取某一格内容

 

QHeaderView *headerView = horizontalHeader();

headerView->setMovable(false);//去除表头的移动

headerView->resizeSection(0,284);//设置第一列宽

headerView->resizeSection(1,127);//设置第二列宽

headerView->setResizeMode(QHeaderView::Fixed);//列表不能移动

headerView->setClickable(false);//不响应鼠标单击

headerView->setHidden(true);//去掉左边默认自带的行号

 

setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条

setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动

setAutoScroll(false);//去掉自动滚动

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QT是一种流行的跨平台软件开发框架。QT 5.9.9是QT的一个版本,它包含了许多不同类型的组件,这些组件可以用于各种不同的软件开发项目。 下面是QT 5.9.9中常用的组件汇总: 1. Qt Core:Qt Core是QT的基础模块,包括了QT的核心类和功能,用于处理各种不同类型的数据和操作。 2. Qt GUI:Qt GUI提供了QT图形界面(GUI)开发的基本功能。您可以使用这些功能来创建按钮、进度条、对话框、菜单等各种视觉效果。 3. Qt Widgets:Qt Widgets是QT的GUI库,提供了许多常见的窗口部件,例如按钮、文本框和标签等。 4. Qt Network:Qt Network是一个用于处理网络通信的模块。它包括了许多不同的类,可以帮助您建立和管理网络连接,发送和接收网络数据。 5. Qt SQL:Qt SQL是一个用于处理数据库的模块。它支持许多不同的数据库管理系统,例如MySQL、SQLite和Oracle等。 6. Qt Multimedia:Qt Multimedia是QT的多媒体框架,可以帮助您处理声音、视频等多媒体数据。 7. Qt QML:Qt QML是一种基于JavaScript的语言,用于创建高性能、符合人类直觉的用户界面。它支持许多不同的平台,包括移动设备和桌面电脑。 8. Qt Quick:Qt Quick是QT中用于创建动态、流畅的用户界面的模块。它基于QML语言,并且可以与Qt Widgets和Qt OpenGL集成使用。 总之,QT 5.9.9中有许多常用组件,可以帮助开发人员快速、轻松地开发出各种高性能、优秀的软件应用。无论您是在开发桌面应用程序、移动应用程序或Web应用程序,QT都提供了各种不同的模块和组件,可以满足您的需求。 ### 回答2: Qt5.9.9是一款常用的跨平台C++程序开发框架,它集成了许多常用的组件,以下是其中的一些: 1. 控件组件:Qt5.9.9中包含了许多界面控件,如按钮、文本框、标签、进度条等,可以方便地在图形化界面中使用。 2. 视图组件:Qt5.9.9中的视图组件包括ListView、TreeView、TableView等,它们可以用于显示和编辑列表和表格等结构化数据。 3. 窗口组件:Qt5.9.9支持窗口组件,如QWidget、QMainWindow等,可以创建多级窗口来实现复杂的界面设计。 4. 图形组件:Qt5.9.9中的图形组件可以用于绘制2D和3D的图形,如QPainter、QGraphicsView、QOpenGLWidget等。 5. 多媒体组件:Qt5.9.9支持音频、视频、图像等多种媒体格式的处理和播放,如QMediaPlayer、QVideoWidget、QSound等。 6. 网络组件:Qt5.9.9中的网络组件可用于编写基于TCP和UDP协议的网络应用程序,如QTcpSocket、QUdpSocket等。 7. 数据库组件:Qt5.9.9可以与MySQL、SQLite、ODBC等多种数据库进行交互,使用QSqlDatabase、QSqlTableModel等组件。 8. 文件和IO组件:Qt5.9.9中的文件和IO组件用于访问和操纵文件系统,如QFile、QDir、QTextStream等。 以上就是Qt5.9.9中常用的组件汇总,这些组件可以帮助开发人员更快地开发出高效、易用、美观的跨平台应用程序。 ### 回答3: Qt是一个跨平台的应用程序开发框架,它提供了丰富的工具来创建现代化的用户界面和强力的应用程序功能。其中,Qt5.9.9是Qt框架的一个版本,它包含了数百个不同的组件来满足不同应用程序的需求。以下是Qt5.9.9中一些常用的组件的汇总: 1. QWidget:这是Qt的一个基本组件,它提供了一个可视化界面来创建自定义窗口、按钮、标签、文本框等等。 2. Qt GUI:这是Qt中最重要的组件,它包含了大量的小部件、布局、绘图、事件处理和窗口管理工具。通过Qt GUI,开发人员可以轻松创建各种现代化的、有效的用户界面。 3. Qt Core:这个组件包含了Qt的核心功能,提供了字符串操作、文件操作、日期和时间函数、对象模型和信号槽机制等等。 4. Qt SQL:这个组件提供了访问关系型数据库的能力,支持多种数据库系统,如MySQL、PostgreSQL、SQLite等等。 5. Qt Multimedia:这个组件提供了音频和视频处理功能,支持各种格式的音频和视频文件。 6. Qt Network:这个组件提供了网络编程功能,支持TCP、UDP和SSL协议,通过HTTP和FTP访问网络资源,进行网络传输。 7. Qt Widgets:这个组件提供了一系列现代化的小部件和窗口样式,使图形用户界面更加美观、简单、直观。 除此之外,Qt还提供了许多其他的组件,例如Qt Quick、Qt WebEngine、Qt Bluetooth、Qt WebSockets等等,它们都可以帮助开发人员创建更加完整、强大、可靠的应用程序。无论您是初学者还是经验丰富的开发人员,Qt都是一款强大而易用的框架,值得您的学习和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值