qt代码积累
QT自适应电脑分辨率,在main函数中最前端设置如下代码
int main(int argc, char *argv[]) { #if (QT_VERSION > QT_VERSION_CHECK(5,6,0)) QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QApplication a(argc, argv); app app; return a.exec(); }
基本控件布局设置
头文件定义对象
QGridLayout *gridLayout; QGridLayout *tabserialLayout; QHBoxLayout *serialLayout; QGridLayout *tabwifiLayout;
源文件设置布局格式和参数
gridLayout = new QGridLayout; gridLayout->addWidget(ui.tabWidget); gridLayout->setContentsMargins(0,0,0,0); ui.mainwidget->setLayout(gridLayout); /*************************************************************/ tabserialLayout = new QGridLayout; tabserialLayout->addWidget(ui.groupBoxSerial,0,0);//网格布局中的位置设置 tabserialLayout->addWidget(ui.groupBoxCtrl,1,0); tabserialLayout->addWidget(ui.groupBoxMsg,2,0); ui.groupBoxSerial->setFixedHeight(40);//设置布局时候固定高度 tabserialLayout->setRowStretch(1,1);//剩余空间自动伸缩 tabserialLayout->setRowStretch(2,1); tabserialLayout->setContentsMargins(0,0,0,0); ui.tabserial->setLayout(tabserialLayout);//将布局放在哪个控件中 serialLayout = new QHBoxLayout;//水平布局 serialLayout->addWidget(ui.label_serialname); serialLayout->addWidget(ui.comboBox_serialname); ui.label_serialname->setFixedWidth(50); ui.comboBox_serialname->setFixedWidth(200); serialLayout->addWidget(ui.label_bauderate); serialLayout->addWidget(ui.comboBox_bauderate); ui.label_bauderate->setFixedWidth(50); ui.comboBox_bauderate->setFixedWidth(70); serialLayout->addWidget(ui.label_databit); serialLayout->addWidget(ui.comboBox_databit); ui.label_databit->setFixedWidth(50); ui.comboBox_databit->setFixedWidth(70); serialLayout->addWidget(ui.label_stopbit); serialLayout->addWidget(ui.comboBox_stopbit); ui.label_stopbit->setFixedWidth(50); ui.comboBox_stopbit->setFixedWidth(70); serialLayout->addWidget(ui.label_paritybit); serialLayout->addWidget(ui.comboBox_paritybit); ui.label_paritybit->setFixedWidth(50); ui.comboBox_paritybit->setFixedWidth(70); serialLayout->addWidget(ui.OpenSerialPort); ui.OpenSerialPort->setFixedWidth(100); serialLayout->setContentsMargins(10,0,0,0); serialLayout->setAlignment(Qt::AlignLeft); ui.groupBoxSerial->setLayout(serialLayout);
ubuntu下使用qt6构建错误,根据提示安装插件
21:37:54: Starting /home/kangxubo/code/QT/build-fujia-Desktop_Qt_6_5_3_GCC_64bit-Debug/fujia... qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin. qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, vkkhrdisplay, minimal, offscreen, wayland, xcb, vnc, wayland-egl, linuxfb, minimalegl. 21:37:54: /home/kangxubo/code/QT/build-fujia-Desktop_Qt_6_5_3_GCC_64bit-Debug/fujia 崩溃。 sudo apt install libvulkan-dev sudo apt install libxkbcommon-dev sudo apt install build-essential libgl1-mesa-dev sudo apt install libxcb*
有你相伴此生无憾!