Qt5 学习之路及嵌入式开发教程17:Qt5主窗口---对齐方式工具栏

Qt5 学习之路及嵌入式开发教程17:Qt5主窗口---对齐方式工具栏

这次任务要完成Qt5主窗口的界面设计第四部分:对齐方式:左对齐、右对齐、居中对齐、两端对齐功能实现

无法用控件完成,只能用代码完成。

做之前,先在工具栏添加新工具栏tooBar(单击右键可添加

步骤:

1、在mainwidow.h中添加代码

#include <QActionGroup>

在类定义内:

private:
    QActionGroup    *actGrp;        
    QAction         *leftAction;     //左对齐
    QAction         *rightAction;    //右对齐
    QAction         *centerAction;   //居中对齐
    QAction         *justifyAction;  //两端对齐

添加槽函数:

protected slots:
     void ShowAlignment(QAction *act);
     void ShowCursorPositionChanged();

2、在mainwindow.cpp中变量初始化、功能实现

变量初始化:

    actGrp       = new QActionGroup(this);
    leftAction   = new QAction(QIcon("left.png"),"左对齐",actGrp);
    leftAction->setCheckable(true);

    rightAction  = new QAction(QIcon("right.png"),"右对齐",actGrp);
    rightAction->setCheckable(true);

    centerAction = new QAction(QIcon("center.png"),"居中",actGrp);
    centerAction->setCheckable(true);

    justifyAction = new QAction(QIcon("justify.png"),"两端对齐",actGrp);
    justifyAction->setCheckable(true);

    ui->toolBar->addActions(actGrp->actions());

槽函数:

扫描二维码关注公众号,回复: 11195647 查看本文章
connect(actGrp,SIGNAL(triggered(QAction*)),this,SLOT(ShowAlignment(QAction*)));
connect(ui->textEdit,SIGNAL(cursorPositionChanged()),this,SLOT(ShowCursorPositionChanged()));

功能实现:

//对齐方式

void MainWindow::ShowAlignment(QAction *act)
{
    if ( act == leftAction )
        ui->textEdit->setAlignment(Qt::AlignLeft);

    if ( act == rightAction )
        ui->textEdit->setAlignment(Qt::AlignRight);

    if ( act == centerAction )
        ui->textEdit->setAlignment(Qt::AlignCenter);

    if ( act == justifyAction )
        ui->textEdit->setAlignment(Qt::AlignJustify);
}

void MainWindow::ShowCursorPositionChanged()
{
    if ( ui->textEdit->alignment() == Qt::AlignLeft )
        leftAction->setChecked(true);

    if ( ui->textEdit->alignment() == Qt::AlignRight )
        rightAction->setChecked(true);

    if ( ui->textEdit->alignment() == Qt::AlignCenter )
        centerAction->setChecked(true);

    if ( ui->textEdit->alignment() == Qt::AlignJustify )
        justifyAction->setChecked(true);
}

3、运行结果:

原创文章 73 获赞 16 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fjqlldg/article/details/105820599
Qt5