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());
槽函数:
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、运行结果: