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);

}

排序

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值