关键词:
1. 工具栏的概念和意义
- 应用程序中集成各种功能实现快捷使用的一个区域
- 工具栏不是应用程序中必须存在的组件
- 工具栏中的元素可以是各种窗口组件
- 工具栏中的元素通常以图标按钮的方式存在
2. Qt中提供了与工具栏相关的组件
3. Qt中主窗口中创建工具栏
4. QToolBar
的关键成员函数
* void setFloatable(bool floatable) // 工具栏是否可以悬浮
* void setMovable(bool movable) // 工具栏是否可以移动
* void setIconSize(const QSize& iconSize) // 设置工具栏中图标按钮的大小
5. QToolBar
中可以加入任意的QWidget
组件
QToolBar* tb = addToolBar("Tool Bar");
QPushButton* b = new QPushButton("Button");
QLabel* l = new QLabel("Lable");
QLineEdit* e = new QLineEdit();
tb->addWidget(b);
tb->addWidget(l);
tb->addWidget(e);
6. 工具栏实战
bool MainWindow::initToolBar()
{
bool ret = true;
QToolBar* tb = addToolBar("Tool Bar");
tb->setIconSize(QSize(16, 16));
ret = ret && initFileToolItem(tb);
return ret;
}
bool MainWindow::initFileToolItem(QToolBar* tb)
{
bool ret = true;
QAction* action = NULL;
ret = ret && makeAciton(action, "New", ":/Res/pic/new.ico");
if( ret )
{
tb->addAction(action);
}
ret = ret && makeAciton(action, "Open", ":/Res/pic/open.ico");
if( ret )
{
tb->addAction(action);
}
ret = ret && makeAciton(action, "Save", ":/Res/pic/save.ico");
if( ret )
{
tb->addAction(action);
}
ret = ret && makeAciton(action, "Save As", ":/Res/pic/saveas.ico");
if( ret )
{
tb->addAction(action);
}
ret = ret && makeAciton(action, "Print", ":/Res/pic/print.ico");
if( ret )
{
tb->addAction(action);
}
tb->addSeparator();
ret = ret && makeAciton(action, "Redo", ":/Res/pic/redo.ico");
if( ret )
{
tb->addAction(action);
}
ret = ret && makeAciton(action, "Undo", ":/Res/pic/undo.ico");
if( ret )
{
tb->addAction(action);
}
return ret;
}
bool MainWindow::makeAciton(QAction*& action, QString tip, QString icon)
{
bool ret = true;
action = new QAction("", NULL);
if( action != NULL )
{
action->setToolTip(tip);
action->setIcon(QIcon(icon));
}
else
{
ret = false;
}
return ret;
}
7. 小结
- 工具栏是集成各种功能的一个快捷区域
- Qt通过
QToolBar
进行工具栏的创建 -
QToolBar
能够加入任意的QWidget
组件 -
QToolBar
中的元素通常以图标按钮的方式存在
声明:此文章仅是本人在学习狄泰QT实验分析课程所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4