// 设置QTextEdit背景和字体颜色
QPalette pl = ui->textEdit->palette(); // 获取textEdit的调色板
pl.setColor(QPalette::Base, Qt::black); // 设置背景色为黑色
pl.setColor(QPalette::Text, Qt::green); // 设置文本颜色为绿色
ui->textEdit->setPalette(pl); // 设置回调色板
QMessageBox自定义了几个常用的消息框,常用的如下两个:
1、警告消息窗
python:
QMessageBox.warning(self.__MainWindow, '标题', '我是文本', QMessageBox.Close)
C++:
QMessageBox::warning(this, '标题', '我是文本', QMessageBox.Close)
2、信息提示消息窗
python:
QMessageBox.information(self.__MainWindow, '标题', '我是文本', QMessageBox.Close)
C++:
QMessageBox::information(this, '标题', '我是文本', QMessageBox.Close)
3、错误提示消息窗
QMessageBox::critical(this, "错误提示", "串口打开失败!\r\n请检查该端口是否存在或被占用!", "关闭");
4、自定义一个消息窗
python:
# 创建一个消息窗
mb = QMessageBox(self.__MainWindow)
# 设置标题
mb.setWindowTitle('标题')
# 设置显示内容
mb.setText('测试QMessageBox')
# 添加关闭按钮
mb.addButton(QPushButton('关闭', mb), QMessageBox.RejectRole)
# 显示消息窗
mb.show()
实现方法:继承QComboBox,重载showPopup函数。
Python代码:
from PyQt5.Qt import *
class SerialComboBox(QComboBox):
def __init__(self, parent=None):
super().__init__(parent)
def showPopup(self):
self.clear()
serials = QSerialPortInfo.availablePorts()
for com in serials:
self.addItem(com.portName() + ' ' + com.description())
super().showPopup()
C++代码:
#include "qserialcombobox.h"
#include
QSerialComboBox::QSerialComboBox(QWidget *parent) : QComboBox(parent)
{
}
void QSerialComboBox::showPopup()
{
// 清除显示
clear();
// 扫描显示可用串口列表
QList<QSerialPortInfo> serials = QSerialPortInfo::availablePorts();
foreach (QSerialPortInfo info, serials) {
addItem(info.portName() + " " + info.description());
}
// 调用父类显示列表
QComboBox::showPopup();
}
1、设置模型显示
# 创建3X3模型,如果不指定表格大小,那么他会根据标签的数量自行定义表格大小
model = QStandardItemModel(3, 3, self.__MainWindow)
# 设置行标签
model.setHorizontalHeaderLabels(['编号', '姓名', '年龄'])
# 设置列标签
model.setVerticalHeaderLabels(['一班', '二班', '三班'])
# 设置到TabelView上
self.tableView.setModel(model)
2、设置内容显示
data = ['1', '2', '3']
for i in range(len(data)):
item = QStandardItem(data[i])
# 设置内容对齐方式为:水平中心对齐+垂直中心对齐
item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
model.setItem(i, i, item)
3、设置表格之间根据间距调整宽度方式
一共5种显示模式:
常用的是根据内容自动调整大小和拉伸
设置方法:
# 设置水平标签重载大小模式为拉伸,也就是铺满整个框,每一列间距是一样的,这样比较好看
self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
QDialog默认设置是右上角只显示一个问号按钮和一个关闭窗口按钮,最大化、最小化按钮需要自己设置,下面以Python代码为例,C++代码步骤也是一样的:
# 创建窗体
self.__MainWindow = QDialog()
# 添加标记
winflags = Qt.Dialog
# 添加最小化按钮
winflags |= Qt.WindowMinimizeButtonHint
# 添加最大化按钮
winflags |= Qt.WindowMaximizeButtonHint
# 添加关闭按钮
winflags |= Qt.WindowCloseButtonHint
# 设置到窗体上
self.__MainWindow.setWindowFlags(winflags)
在主窗口的构造函数中创建配置文件: