Qt 5主窗体构成

Qt 5主窗体构成

在这里插入图片描述

1.菜单栏
菜单是一系列命令的列表。为了实现菜单、工具栏按钮、键盘快捷方式等命令的一致性,Qt使用动作(Action)来表示这些命令。Qt的菜单就是由一系列的QAction动作对象构成的列表,而菜单栏则是包容菜单的面板,它位于主窗口顶部、主窗口标题栏的下面。一个主窗口最多只有一个菜单栏。
2.状态栏
状态栏通常显示GUI应用程序的一些状态信息,它位于主窗口的底部。用户可以在状态栏上添加、使用Qt窗口部件。一个主窗口最多只有一个状态栏。

3.工具栏
工具栏是由一系列的类似于按钮的动作排列而成的面板,它通常由一些经常使用的命令(动作)组成。工具栏位于菜单栏的下面、状态栏的上面,可以停靠在主窗口的上、下、左、右四个方向上。一个主窗口可以包含多个工具栏。
4.锚接部件
锚接部件作为一个容器使用,以包容其他窗口部件来实现某些功能。例如,Qt设计器的属性编辑器、对象监视器等都是由锚接部件包容其他的Qt窗口部件来实现的。它位于工具栏区的内部,可以作为一个窗口自由地浮动在主窗口上面,也可以像工具栏一样停靠在主窗口的上、下、左、右四个方向上。一个主窗口可以包含多个锚接部件。
5.中心部件
中心部件处在锚接部件区的内部、主窗口的中心。一个主窗口只有一个中心部件。

菜单menu

QToolBar

这里注意action个button的作用

QPrintDialog 和QPrinter

 QPrinter printer;				//新建一个QPrinter对象
        QPrintDialog printDialog(&printer,this);			//(a)
        if(printDialog.exec())					//(b)
        {
    
    
           //获得QTextEdit对象的文档
            QTextDocument *doc =showWidget->text->document();
            doc->print(&printer);					//打印
        }

头像放大旋转QMatrix

if(img.isNull())			//有效性判断
            return;
        QMatrix martix;			//声明一个QMatrix类的实例
        martix.scale(2,2);			//(a)
        img = img.transformed(martix);
        //重新设置显示图形
        showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));

generic-cardcontainer-ui

镜像

void ImgProcessor::ShowMirrorVertical()
{
    
    
    if(img.isNull())
        return;
    img=img.mirrored(false,true);
    showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));
}
void ImgProcessor::ShowMirrorHorizontal()
{
    
    
    if(img.isNull())
        return;
    img=img.mirrored(true,false);
    showWidget->imageLabel->setPixmap(QPixmap::fromImage(img));
}

文本编辑

在这里插入图片描述

字体设置

void MainWindow::showFontComboBox(const QString &fontName)
{
    
    
    QTextCharFormat fmt;		 //创建一个QTextCharFormat对象
        fmt.setFontFamily(fontName); //选择的字体名称设置给QTextCharFormat对象
        mergeFormat(fmt);
}

void MainWindow::mergeFormat(const QTextCharFormat format)
{
    
    
    QTextCursor cursor =showWidget->text->textCursor();
    //获得编辑框中的光标
        if(!cursor.hasSelection())							//(a)
            cursor.select(QTextCursor::WordUnderCursor);
        cursor.mergeCharFormat(format);						//(b)
        showWidget->text->mergeCurrentCharFormat(format);	//(c)

}

字号设置

void MainWindow::updateFontSize(const QString &fontSize)
{
    
    
    QTextCharFormat fmt;
    fmt.setFontPointSize(fontSize.toFloat());
    showWidget->text->mergeCurrentCharFormat(fmt);

}

加粗、鞋子、下划线

QTextCharFormat fmt;
    fmt.setFontWeight(boldBtn->isChecked()?QFont::Bold:QFont:: Normal);
fmt.setFontItalic(italicBtn->isChecked());
fmt.setFontUnderline(underlineBtn->isChecked());
    showWidget->text->mergeCurrentCharFormat(fmt);

颜色选择

void MainWindow::showColorBtn()
{
    
    
    QColor color = QColorDialog::getColor();
    if(color.isValid())
    {
    
    
        QTextCharFormat fmt;
        fmt.setForeground(color);
        showWidget->text->mergeCurrentCharFormat(fmt);
    }

}

Qt 5排版功能

文本对齐

void MainWindow::showAlignment(QAction *act)
{
    
    
    if(act==leftAction)
            showWidget->text->setAlignment(Qt::AlignLeft);
        if(act==rightAction)
            showWidget->text->setAlignment(Qt::AlignRight);
        if(act==centerAction)
            showWidget->text->setAlignment(Qt::AlignCenter);
        if(act==justifyAction)
            showWidget->text->setAlignment(Qt::AlignJustify);

}

排序

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43328357/article/details/112342484