QT-主窗口
QAction
主窗口
菜单栏:fileMenu = menuBar()->addMenu(tr("&File"));
工具栏:fileToolBar = addToolBar(tr("File"));
浮动窗:QDockWidget *dockWidget
= new QDockWidget(tr("Dock Widget"), this);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
中央部件:setCentralWidget(te);
状态栏:statusBar()->addWidget(progress);
QFileDialog类
QFileDialog类是Qt框架提供的一个对话框类,用于在应用程序中打开和保存文件。它提供了用户友好的界面,用于选择文件和目录,以及设置文件过滤器和文件名称。
QFileDialog类的主要作用包括:
1. 打开文件对话框:可以使用QFileDialog选择一个或多个文件,并从中获取文件的路径或文件名。
2. 保存文件对话框:可以使用QFileDialog指定文件的保存路径和名称,并进行保存操作。
3. 选择目录对话框:可以使用QFileDialog选择一个目录,并从中获取目录的路径。
4. 文件过滤器:可以使用QFileDialog设置过滤器,以限制用户在对话框中显示的文件类型,例如只显示文本文件、图像文件等。
5. 自定义对话框:可以使用QFileDialog的静态函数,如getOpenFileName()、getSaveFileName()等,直接弹出一个标准的文件对话框,并获取用户的选择结果。
通过使用QFileDialog类,开发人员可以在Qt应用程序中方便地实现文件操作相关的功能,提供灵活和交互性的文件选择和保存交互界面。
QColorDialog类是Qt框架提供的一个对话框类,用于在应用程序中选择颜色。它提供了一个用户友好的界面,以便用户可以直观地选择所需的颜色。
QColorDialog类
QColorDialog类的主要作用包括:
1. 选择颜色:使用QColorDialog,用户可以从多种选择颜色的方式中选择颜色,如调整RGB、HSL、HSV等颜色空间的分量,通过选择预定义的颜色,或者通过颜色选择器选择自定义颜色。
2. 设置默认颜色:可以在打开QColorDialog之前设置默认颜色,以便在对话框中显示初始的颜色。
3. 获取选择的颜色:一旦用户选择了颜色,可以使用QColorDialog获取所选颜色的值,以便在应用程序中进行进一步的处理。
4. 自定义对话框:可以使用QColorDialog的静态函数,如getColor(),直接弹出一个标准的颜色对话框,并获取用户选择的颜色结果。
通过使用QColorDialog类,开发人员可以在Qt应用程序中实现颜色相关的功能,如选择、显示和处理颜色,以及提供灵活和交互性的颜色选择界面。
QAction类是Qt框架提供的一个类,用于创建和管理用户操作。它表示用户在应用程序中的动作,例如菜单项、工具栏按钮、快捷键等。
QAction类
QAction类的主要作用包括:
1. 创建用户操作:通过QAction类可以创建各种用户操作,如菜单项、工具栏按钮等。
2. 设置操作的文本和图标:可以设置QAction的文本和图标,显示在菜单项、工具栏按钮等界面元素上,以便用户理解和识别操作。
3. 设置操作的快捷键:可以为QAction设置快捷键,以便用户可以使用键盘快速触发操作。
4. 关联操作的信号和槽:可以将QAction的信号与槽函数关联起来,当用户执行该操作时,会触发相应的信号,从而执行槽函数进行相应的处理。
5. 设置操作的状态:可以设置QAction的状态,如是否可用、是否选中等,以便动态控制用户操作的状态。
6. 分组操作:可以将多个QAction对象组合成一个逻辑组,并进行管理和统一操作。
通过使用QAction类,开发人员可以方便地创建和管理用户操作,实现用户界面的交互性和功能性。它提供了丰富的功能和接口,可以与其他Qt类一起使用,如菜单、工具栏和信号槽机制等,以构建强大的用户界面和应用程序。
QTextEdit类是Qt框架提供的一个用于编辑富文本的文本编辑器类。它提供了一个可编辑的文本区域,允许用户输入、编辑和格式化文本。
QTextEdit类
QTextEdit类的主要作用包括:
1. 显示和编辑文本:QTextEdit提供了一个可视化的文本区域,用户可以在其中输入和编辑文本。它支持基本的文本操作,如插入、删除、复制、粘贴等。
2. 支持富文本格式:QTextEdit支持富文本格式,可以显示和编辑带有格式的文本,如字体样式、字体大小、颜色、对齐方式等。
3. 处理文本样式:QTextEdit允许设置和应用文本的样式,如字体、粗体、斜体、下划线等。
4. 处理光标和选择:QTextEdit提供了对光标和选择文本的操作,如设置光标位置、选择文本范围、获取选择的文本等。
5. 支持撤销和重做:QTextEdit支持撤销和重做操作,用户可以撤销之前的文本修改,并重新应用修改。
6. 自动换行和滚动:QTextEdit可以自动换行长文本,并提供滚动功能,以便用户可以查看和编辑超出可见区域的文本。
通过使用QTextEdit类,开发人员可以轻松地创建和管理文本编辑器,实现富文本的输入和编辑。它可以用于实现文本编辑器、富文本编辑器、日记本、聊天窗口等各种文本相关的界面和应用程序。
QLabel类是Qt框架提供的一个用于显示文本和图像的标签控件类。它用于在应用程序的用户界面中显示静态文本或图像。
QLabel类
QLabel类的主要作用包括:
1. 显示文本:QLabel可以显示静态文本,并支持基本的文本样式设置,如字体、颜色、对齐方式等。可以通过设置QLabel的文本属性来显示不同的文本内容。
2. 显示图像:QLabel可以显示静态图像,支持多种图像格式(如PNG、JPG等),可以通过设置QLabel的图像属性来显示不同的图像。
3. 自动调整大小:QLabel可以自动调整其大小以适应显示的文本或图像的大小。可以设置QLabel的大小策略,以便根据内容自动调整大小。
4. 布局和对齐:QLabel可以与其他Qt布局管理器一起使用,如QVBoxLayout、QHBoxLayout等,以便在应用程序的布局中正确放置和对齐标签。
5. 交互性:QLabel可以通过设置其鼠标跟踪和事件处理函数,实现与用户的交互。例如,可以通过单击QLabel,触发事件并执行相应操作。
通过使用QLabel类,开发人员可以方便地在Qt应用程序中显示静态文本和图像,实现信息展示、标签显示、图像显示等功能,并与其他Qt控件和布局管理器一起使用,以构建丰富的用户界面。
menuBar()是QWidget类的一个方法,用于获取窗口的菜单栏对象。在这行代码中,menuBar()返回的是当前窗口的菜单栏对象。
addMenu(tr("&File"))是QMenuBar类的一个方法,用于在菜单栏中添加一个新的菜单项。tr("&File")是Qt的国际化机制,用于对文本进行翻译以支持多语言。在这里,tr("&File")表示将字符串"&File"进行国际化处理。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QAction>
#include <QTextEdit>
#include <QLabel>
#include <QFileDialog>
#include <QColorDialog>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void openf()
{
QString filename = QFileDialog::getOpenFileName();
te->setText(filename);
}
void copyf()
{
te->copy();
}
void pastf()
{
te->paste();
}
void setcf()
{
QColor ccc = QColorDialog::getColor();
te->setTextColor(ccc);
}
private:
QAction *openfileact;//QAction是Qt框架中的一个类,用于表示用户界面中的动作或命令。QAction可以与菜单、工具栏、快捷键等进行关联,使得用户可以通过点击菜单项、工具栏按钮或按下快捷键来执行某个操作。
//QAction类提供了一系列方法,用于设置和获取动作的各种属性,例如文本、图标、快捷键、状态等。同时,QAction还提供了信号与槽机制,使得可以在动作被触发时执行特定的逻辑代码。
QAction *copyfileact, *pastfileact;
QAction *setcoloract;
//central
QTextEdit *te;
//status
QLabel *slb;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QStatusBar>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//create actions
openfileact = new QAction(QIcon("open.png"), "open");
openfileact->setShortcut(QKeySequence(tr("Ctrl+O")));
copyfileact = new QAction(QIcon("copy.png"),"copy");
pastfileact = new QAction(QIcon("past.png"),"past");
setcoloract = new QAction(QIcon("color.png"),"setcolor");
//create meu
QMenu *fileMenu = menuBar()->addMenu(tr("&File"));//menuBar()是QWidget类的一个方法,用于获取窗口的菜单栏对象。在这行代码中,menuBar()返回的是当前窗口的菜单栏对象。
// addMenu(tr("&File"))是QMenuBar类的一个方法,用于在菜单栏中添加一个新的菜单项。tr("&File")是Qt的国际化机制,用于对文本进行翻译以支持多语言。在这里,tr("&File")表示将字符串"&File"进行国际化处理。
fileMenu->addAction(openfileact);
QMenu *editMenu = menuBar()->addMenu(tr("&Edit"));
editMenu->addAction(copyfileact);
editMenu->addAction(pastfileact);
QMenu *setMenu = menuBar()->addMenu(tr("&Set"));
setMenu->addAction(setcoloract);
//create toolbars
QToolBar *tfile = addToolBar("file");
tfile->addAction(openfileact);
QToolBar *tedit = addToolBar("edit");
tedit->addAction(copyfileact);
tedit->addAction(pastfileact);
QToolBar *tset = addToolBar("set");
tset->addAction(setcoloract);
//cenctral
te = new QTextEdit("hello");
te->setMinimumSize(640, 480);
setCentralWidget(te);
//statures
slb = new QLabel("1.txt*");
QStatusBar *stb = statusBar();
stb->addWidget(slb);
connect(openfileact, SIGNAL(triggered(bool)), this, SLOT(openf()));
connect(copyfileact, SIGNAL(triggered(bool)), this, SLOT(copyf()));
connect(pastfileact, SIGNAL(triggered(bool)), this, SLOT(pastf()));
connect(setcoloract, SIGNAL(triggered(bool)), this, SLOT(setcf()));
}
MainWindow::~MainWindow()
{
}