「QMainWindow_Menuバーとツールバー」
QMainWindow:メニューバー、複数のツールバー、複数のリベット留めコンポーネント(フローティングウィンドウドックウィジェット)、中央ウィジェット、ステータスバー。
メニューバー
メニューバーは1つしかありません
// 创建菜单栏MenuBar,使用系统提供的方法
QMenuBar *bar = menuBar();
// 将菜单栏放入窗口中
setMenuBar(bar);
// 创建菜单Menu
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
// 创建菜单项Action
fileMenu->addAction("新建");
fileMenu->addSeparator();
fileMenu->addAction("打开");
ToolBar ToolBar
複数のツールバーが存在する可能性があります
// 创建工具栏,系统没有提供对应的方法
QToolBar *toolBar = new QToolBar(this);
// 将工具栏放入窗口中
// addToolBar(Qt::LeftToolBarArea, toolBar);
addToolBar(toolBar);
// 设置浮动属性
// toolBar->setFloatable(false);
// 设置移动属性
// toolBar->setMovable(true);
// 工具栏中可以设置内容
toolBar->addAction("新建");
toolBar->addSeparator();
toolBar->addAction("打开");
// 工具栏中添加一些控件
QPushButton *btn = new QPushButton("aaa", this);
toolBar->addWidget(btn); // QPushButton父类的父类是QWidget
「QMainWindow_Statusバー、リベット留め部品、コア部品」
ステータスバー
// z状态栏只有一个
QStatusBar *stBar = statusBar();
// 将statusBar设置到窗口中
setStatusBar(stBar);
// 放置标签控件
QLabel *label = new QLabel("提示的信息", this);
stBar->addWidget(label);
リベットで留められたウィジェット(フローティングウィンドウ)QDockWidget
// 铆接部件 (浮动窗口)
QDockWidget *docWidget = new QDockWidget("浮动", this);
addDockWidget(Qt::BottomDockWidgetArea, docWidget); // (add可以add多个)
//设置铆接部件后期的可停靠范围
docWidget->setAllowedAreas(Qt::TopDockWidgetArea| Qt::BottomDockWidgetArea);
コアコンポーネント
//----------------------------------------
// 设置中心部件(eg:记事本)
QTextEdit *edit = new QTextEdit(this);
setCentralWidget(edit); //中心部件只能有一个,所以需要用内置的set函数(set只能set一个)
「リソースファイルの追加」
ui->setupUi(this);
ui->actionNew->setIcon(QIcon("/home/clf/Downloads/lufei2.jpeg"));
// 使用添加Qt的资源 ": + 前缀名 + 文件名"
// 1. 把所有的图片及资源放入源码目录下
// 2. 右击项目->添加新文件->Qt->Resoure File->资源文件取名res->确定即可生成res.qrc文件
ui->actionNew->setIcon(QIcon(":/lufei/Image/lufei1.jpeg"));
「モーダルおよび非モーダルダイアログボックスの作成」
モーダルダイアログの実行
// 对话框 分类
// 模态对话框(不可以对其他的窗口进行操作,有阻塞功能)、非模态对话框
// 模态创建
QDialog dlg(this);
dlg.resize(200, 100); //模态对话框太小的话,会提示一些警告,所以geometry设置大一些
dlg.exec(); //模态对话框(阻塞功能)
qDebug()<<"模态对话框弹出了";
非モーダルダイアログショー
// 非模态对话框
// QDialog dlg2(this);// 非模态对话框(因为dlg2是创建在堆上的,所以会一闪而过)
QDialog * dlg2 = new QDialog(this);
dlg2->resize(200, 100);
dlg2->show();
dlg2->setAttribute(Qt::WA_DeleteOnClose); // 防止关闭非模态对话框的时候,内存没法释放的
qDebug()<<"非模态对话框弹出了";
「標準ダイアログボックスのメッセージダイアログボックス」
PS:システムには、直接使用できる多くのダイアログボックスが用意されています。
QMessageBoxの静的パブリックメンバー:
- クリティカル・エラー
- 情報
- 質問
- 警告
//标准对话框:错误对话框、消息对话框
// QMessageBox::critical(this, "critical","错误");
// QMessageBox::information(this,"info","信息");
// 提问对话框
QMessageBox::question(this, "ques", "提问");
// 参1:父亲 参2:标题 参3:提示内容 参4:按键类型 参5:默认关联回车按键
if(QMessageBox::Save = QMessageBox::question(this, "ques", "提问",
QMessageBox::Save|QMessageBox::Cancel, QMessageBox::Cancel)) {
qDebug()<<"选择保存";
}
else {
qDebug()<<"选择取消";
}
「標準ダイアログのファイルダイアログを選択」
// 文件对话框
// 参1:父亲 参2:标题 参3:默认打开路径 参4:过滤文件格式
QString strPath= QFileDialog::getOpenFileName(this, "打开","/home/clf/", "(*).txt");
qDebug()<<strPath;
「ログインウィンドウのレイアウト」
1.ログインウィンドウを実装します
2.レイアウト方法を使用してウィンドウを美しくします。3
。レイアウト、水平レイアウト、垂直レイアウト、およびグリッドレイアウトにウィジェットを使用します。
4.全体のレイアウトにユーザー名、パスワード、ログイン、およびログアウトボタンを指定します
。5 。デフォルトウィンドウとコントロールの間に9ピクセルがあり、layoutLeftMarginを調整できます。6。
レイアウトにスプリングを使用します
。7。ウィンドウウィジェットの高さが高すぎ、sizepolicy属性をFixedとして調整でき、ウィジェット内のコントロールのサイズに適応できます
「コントロールボタングループ」
- QPushButtonの頻繁に使用されるボタン
- QToolButtonツールボタン。画像を表示するために使用されます。テキストを表示する場合は、スタイルを変更します:toolButtonStyle。突き出たスタイルのautoRaise
- radioButtonラジオボタン、デフォルトのui-> setCheck(true);を設定します。
- ステータスを監視するためのcheckBox複数選択ボタン。2選択済み1半分選択済み0未選択。
「QListWidgetコントロール」
QListWidgetリストコンテナ
- QListWidgetItem1行のコンテンツ
「QTableWidgetコントロール」
- StackedWidget
- TabWidget
- ドロップダウンボックスcombox
- 単一行編集ボックス行編集
- テキストエディット(編集可能なフォントの色、フォーマット)
- PlainTextEdit(
編集不可能なフォントの色、形式) - スライダー
- ラベル
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// 栈控件的使用
// 设置默认定位
ui->stackedWidget->setCurrentIndex(1);
// 按钮关联栈控件
connect(ui->btn_ScrollArea, &QPushButton::clicked, [=](){
ui->stackedWidget->setCurrentIndex(0);
});
connect(ui->btn_TabWidget, &QPushButton::clicked, [=](){
ui->stackedWidget->setCurrentIndex(1);
});
// 下拉框comBox
ui->comboBox->addItem("奔驰");
ui->comboBox->addItem("宝马");
ui->comboBox->addItem("拖拉机");
// 点击按钮,选中拖拉机选项
connect(ui->btn_select, &QPushButton::clicked, [=](){
// ui->comboBox->setCurrentIndex(2);
ui->comboBox->setCurrentText("拖拉机");
});
// 利用QLabel显示图片 在Qt中的图片资源都叫Pixmap
ui->lbl_Image->setPixmap(QPixmap(":/Image/lufei1.jpeg"));
// 利用QLabel显示动图 仅限于gif的图片
QMovie * movie = new QMovie(":/Image/maliao.gif");
// 动图需要启动播放的动作
ui->lbl_Movie->setMovie(movie);
movie->start();
}