十堰网站网站建设,问答类网站怎么做,北京建设局网站首页,色一把做最好的看片网站1.Qt::Alignment#xff08;枚举类型#xff09;用于指定控件或文本的对齐方式
Qt::AlignLeft#xff1a;左对齐。Qt::AlignRight#xff1a;右对齐。Qt::AlignHCenter#xff1a;水平居中对齐。Qt::AlignTop#xff1a;顶部对齐。Qt::AlignBottom#xff1a;底部对齐。…1.Qt::Alignment枚举类型用于指定控件或文本的对齐方式
Qt::AlignLeft左对齐。Qt::AlignRight右对齐。Qt::AlignHCenter水平居中对齐。Qt::AlignTop顶部对齐。Qt::AlignBottom底部对齐。Qt::AlignVCenter垂直居中对齐。Qt::AlignCenter等价于 Qt::AlignHCenter | Qt::AlignVCenter即水平和垂直都居中对齐
2.保存为文本文件
void MainWindow::saveLog()
{//保存为日志文件但是每次都是plainTextEdit覆盖QFile file(fileName);if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {QTextStream out(file);out ui-plainTextEdit-toPlainText()endl;file.close();// 提示用户保存成功可选ui-statusbar-showMessage(save Successfully,2000);} else {// 处理文件打开失败的情况可选ui-statusbar-showMessage(Fail to save,2000);}
}
void MainWindow::saveLog_Append()
{//保存为日志文件与上不同是QIODevice的方式QFile file(fileName);if (file.open(QIODevice::WriteOnly | QIODevice::Append)) {QTextStream out(file);out ui-plainTextEdit-toPlainText();file.close();// 提示用户保存成功可选ui-statusbar-showMessage(save Successfully,2000);} else {// 处理文件打开失败的情况可选ui-statusbar-showMessage(Fail to save,2000);}
}
void MainWindow::saveLog_Stream(QString strMessage)
{//换一种方式写入QFile file(fileName);if (file.open(QIODevice::WriteOnly | QIODevice::Append)) {QTextStream stream(file);stream strMessage endl; // 使用Qt::endl来确保跨平台兼容性// file.flush(); // 可选因为close()会刷新缓冲区file.close();}else{// 处理文件打开失败的情况qDebug() 无法打开文件!;}
}
3.边框样式QFrame::Shape
QFrame::NoFrame没有边框。QFrame::Box简单的矩形边框。QFrame::Panel与 Box 类似但通常用于面板或窗口部件的背景。QFrame::WinPanel在 Windows 风格下类似于 Panel但在某些系统上可能有特定的绘制风格。QFrame::HLine水平线条。QFrame::VLine垂直线条。QFrame::StyledPanel使用当前样式表如果可用来绘制边框。QFrame::Plain与 NoFrame 类似但在某些平台上可能有细微的差别。QFrame::Raised凸起的边框。QFrame::Sunken凹陷的边框。
4.阴影效果QFrame::Shadow
QFrame::Plain没有阴影效果。QFrame::Raised凸起的阴影效果。QFrame::Sunken凹陷的阴影效果。
组合使用
frame-setFrameStyle(QFrame::Box | QFrame::Sunken);//一个凹陷的矩形边框
5.为标签添加超链接
QLabel *labVersion new QLabel(版本标签);//ctrlAltdown 快速向下复制
labVersion-setFrameStyle(QFrame::Box|QFrame::Raised);//矩形边框和突起
labVersion-setText(tr(a href\http://www.baidu.com\超链接测试/a));
labVersion-setOpenExternalLinks(true);//设置可以打开网站链接
ui-statusbar-addPermanentWidget(labVersion);//显示永久信息
6.创建菜单栏
QAction * newAct new QAction(QIcon( :/img_zll/images/100 ), tr( 新建 ), this ); newAct-setShortcut(tr(CtrlN ));
newAct-setStatusTip(tr(新建文件 ));// QMenu *fileMenu ui-menuBar-addMenu(tr(File));//创建主目录
QMenu *fileMenu menuBar()-addMenu(tr( 文件 ));
fileMenu-addAction(newAct);
fileMenu-addSeparator();//添加间隔器
7.设置应用程序窗口的图标
制作图标ICO图标在线转换_ICO图标制作工具_PNG在线转ICO - ICO吧
QIcon icon(:/img_zll/images/paper.png); // 使用资源路径或文件路径
w.setWindowIcon(icon);//或许也可以这样
//1、将ico格式图片放入main文件同级目录。
//2、在pro文件中添加RC_ICONS myico.ico#配置桌面软件图标
8.任务栏托盘菜单
restoreWinAction new QAction(恢复(R),this);quitAction new QAction(退出(Q),this);//恢复connect(restoreWinAction,SIGNAL(triggered()),this,SLOT(if_restoreWinAction_selected()));//退出connect(quitAction,SIGNAL(triggered()),qApp,SLOT(quit()));myAppMenu new QMenu((QWidget*)QApplication::desktop());//添加菜单myAppMenu-addAction(restoreWinAction);//分隔符myAppMenu-addSeparator();myAppMenu-addAction(quitAction);//判断系统是否支持托盘图标if(!QSystemTrayIcon::isSystemTrayAvailable()){return;}QSystemTrayIcon *myTrayIcon new QSystemTrayIcon(this);//设置图标myTrayIcon-setIcon(QIcon(:/img_zll/images/time.ico));//鼠标放托盘图标上提示信息myTrayIcon-setToolTip(打卡记录);//设置消息myTrayIcon-showMessage(托盘,托盘管理,QSystemTrayIcon::Information,10000);//托盘菜单myTrayIcon-setContextMenu(myAppMenu);//显示myTrayIcon-show();
//恢复
void MainWindow::if_restoreWinAction_selected()
{this-show();
}
9.状态栏
QStatusBar状态栏 状态信息分为三类 1、临时信息 showMessage(); 2、正常信息 addWidget添加一个QLable到状态栏显示 3、永久信息 addPermanentWidget
ui-statusBar-showMessage(tr(离开工位),2000);QLabel *lable new QLabel(this);
lable-setFrameStyle(QFrame::Box|QFrame::Sunken);
lable-setText(永远相信美好的事情即将发生);// 创建一个容器小部件和水平布局 QWidget *container new QWidget; QHBoxLayout *layout new QHBoxLayout(container); // 创建一个水平间隔器 QSpacerItem *spacer new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); // 创建QLabel QLabel *label new QLabel(标签); // 将间隔器和QLabel添加到水平布局中 layout-addItem(spacer); // 间隔器放在前面 layout-addWidget(label); // QLabel放在间隔器后面 // 设置容器的布局 container-setLayout(layout); // 将容器小部件添加到状态栏中 statusBar-addWidget(container);
10.样式
10.1内置样式
#include QApplication
#include QStyleFactoryint main(int argc, char *argv[])
{QApplication app(argc, argv);// 设置Fusion样式app.setStyle(QStyleFactory::create(Fusion));// 设置Windows样式// app.setStyle(QStyleFactory::create(Windows));// 设置macOS样式// app.setStyle(QStyleFactory::create(Macintosh));// 设置WindowsVista样式// app.setStyle(QStyleFactory::create(WindowsVista));// 设置WindowsXP样式// app.setStyle(QStyleFactory::create(WindowsXP));// ... 创建和显示Qt对象return app.exec();
}
10.2 外部样式表
// main.cpp#include QApplication
#include QFileint main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个样式表文件对象QFile styleFile(:/styles.qss); // 根据实际的文件路径或资源路径进行修改if (styleFile.open(QFile::ReadOnly)){// 读取样式表文件内容QString styleSheet QLatin1String(styleFile.readAll());// 设置样式表app.setStyleSheet(styleSheet);}// ... 创建和显示Qt对象return app.exec();
}
10.3样式的使用
10.3.1选择器
选择器Selectors用于选择要应用样式的UI元素可以使用对象名object name或类名class name作为选择器也可以使用通配符和层级选择器
//选择器
QPushButton {color: red; // 应用到所有QPushButton类型的按钮
}QCheckBox#myCheckBox {font-size: 14px; // 应用到objectName为myCheckBox的QCheckBox
}QLabel.warning {background-color: yellow; // 应用到class name为warning的QLabel
}
10.3.2属性设置
可以使用属性和值的形式来设置UI元素的外观
QCheckBox:checked {color: green; // 设置选中状态的文本颜色
}
10.3.3盒模型属性
可以设置内边距padding外边距margin以及元素本身的尺寸和位置
QPushButton {padding: 5px;margin: 10px;width: 100px;height: 30px; // 设置内外边距、宽度和高度
}QLabel {position: absolute; // 设置绝对定位top: 50px;left: 100px;
}
10.3.4伪状态Pseudo-states
用于设置特定状态下的样式如鼠标悬停hovered、按下pressed
QPushButton:hover {background-color: lightgray; // 鼠标悬停时的背景颜色
}/* 设置按下按钮时的背景颜色和文本样式 */
QPushButton:pressed {background-color: darkgray;color: white;
}/* 设置表格中奇数行的背景颜色 */
QTableView QAbstractItemView::item:nth-child(odd) {background-color: lightgray;
}/* 设置选中行的背景颜色和文本颜色 */
QTableView QAbstractItemView::item:selected {background-color: navy;color: white;
}QCheckBox:indeterminate {color: orange; // 设置不确定状态的文本颜色
}QRadioButton:checked {image: url(checked.png); // 设置选中状态时的自定义图像
}