文章目录
一、QDebug类和QMessagebox类
(一)QDebug类:打印调试类
//头文件
#include <QDebug>
(二)QMessagebox类:弹窗类
头文件:
#include <QMessagebox>
第一种方式:实例化对象版本
QMessageBox::QMessageBox(
QMessageBox::Icon icon, ---- 图标
const QString &title, ---- 标题
const QString &text, ---- 文本信息
QMessageBox::StandardButtons buttons = NoButton, ---- 按钮
QWidget *parent = nullptr, ---- 父亲
Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint) --- 默认值(不用不给即可)
第二种方式:静态函数版本
[static]------静态版本
QMessageBox::StandardButton QMessageBox::question(
QWidget *parent, ----- 父亲
const QString &title, ----- 标题
const QString &text, ------ 文本信息
QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), ---- 按钮
QMessageBox::StandardButton defaultButton = NoButton) ---- 按钮
五种弹窗:
QMessageBox::NoIcon
QMessageBox::Question
QMessageBox::Information
QMessageBox::Warning
QMessageBox::Critical
2. 修改组件图标
(1)通过ui界面
下拉箭头–>选择文件/选择资源
(2)通过QIcon的方式
在demo.cpp中,通过QIcon类
#include <QIcon>
QIcon::QIcon(const QString &filename)
使用:
QIcon icon_q("C:\\Users\\Administrator\\Desktop\\question.jpg");
ui->btn_question->setIcon(icon_q);
(3)通过QPixmap类
#include <QPixmap>
使用:
QPixmap map_w("C:\\Users\\Administrator\\Desktop\\warning.jpg");
QIcon icon_w(map_w);
ui->btn_warning->setIcon(icon_w);
这样写也不会报错:
QPixmap map_w("C:\\Users\\Administrator\\Desktop\\warning.jpg");
ui->btn_warning->setIcon(map_w);
3. 使用示例
(1)实例化对象实现
//按钮的槽函数
void demo::on_btn_noicon_clicked()
{
//第一种版本:实例化对象版本
QMessageBox box(QMessageBox::NoIcon,
"弹窗标题",
"弹窗内容",
QMessageBox::Yes | QMessageBox::No,
this);
int btn = box.exec();
if(btn == QMessageBox::Yes) {
qDebug() << "按下的是yes按键";
} else if(btn == QMessageBox::No) {
qDebug() << "按下的是No按键";
}
}
- 注:
virtual int exec()
阻塞函数
2. 静态函数版本
[static] ----- 静态函数
QMessageBox::StandardButton QMessageBox::question(
QWidget *parent, ----- 父亲
const QString &title, ----- 标题
const QString &text, ------ 文本信息
QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), ---- 按钮
QMessageBox::StandardButton defaultButton = NoButton) ---- 按钮
//第二种版本:静态版本
QMessageBox::StandardButton btn =
QMessageBox::question(
this,
"标题文本",
"文本信息",
QMessageBox::Yes | QMessageBox::No);
if(btn == QMessageBox::Yes) {
qDebug() << "按下的是yes按键";
} else if(btn == QMessageBox::No) {
qDebug() << "按下的是No按键";
}
二、颜色对话框和字体对话框类
(一)QColorDialog
[static] ----静态函数--- 不需要实例化对象
QColor QColorDialog::getColor(
const QColor &initial = Qt::white, ----- 设置颜色
QWidget *parent = nullptr, ---- 父亲
const QString &title = QString(), ----- 标题
QColorDialog::ColorDialogOptions options = ColorDialogOptions()) --- 默认值
QColor:颜色类
QColor::QColor(const QColor &color) ---- 设置颜色
bool QColor::isValid() const ---- 判断颜色是否设置成功
Returns true if the color is valid; otherwise returns false.
(二)QFontDialog
[static] ---- 静态函数
QFont QFontDialog::getFont(
bool *ok, ---- 字体状态
const QFont &initial, ---- 默认字体
QWidget *parent = nullptr, -----父亲
const QString &title = QString(), ---- 标题
QFontDialog::FontDialogOptions options = FontDialogOptions()) ---- 默认值
QFont:字体类
QFont::QFont(
const QString &family, --- 字体:宋体、楷体、黑体....
int pointSize = -1, --- 字体大小
int weight = -1, --- 宽度
bool italic = false) ----斜体
void setFont(const QFont &);----- 设置字体
三、资源文件
Qt资源文件就是利用Qt创造器和rcc资源编译器将Qt资源进行汇总到工程中。
Qt资源文件是不能自己转换为C++代码,需要借助RCC编译器转换为C++代码。
QtCreator集成软件将以上的内容交给了xxx.pro工程文件,自动生成Makefile文件,最后由Makefile文件完成
(一)添加资源文件
- 将资源文件添加到工程中,注意路径不要有中文(注意添加到工程文件中,不要加到影子文件中)
- 文件->新建文件或者项目
- 添加文件
- 修改前缀,选中要添加的资源,点击打开
(二)添加图标的方式
第一种方式:通过ui界面的右侧的属性进行添加图标
选择父窗口—>在右侧属性中选择WindowIcon–>点击小三角选择添加资源
第二种方式:通过QIcon类
QIcon::QIcon(const QString &fileName)
----参数:文件的名字(说白了文件的路径)
第三种方式:通过QPixmap类
QIcon::QIcon(const QPixmap &pixmap)
QPixmap::QPixmap(
const QString &fileName, ---- 文件的名字(说白了文件的路径)
const char *format = nullptr,
Qt::ImageConversionFlags flags = Qt::AutoColor)