QT GUI总结
QT GUI总结
http://blog.sina.com.cn/s/blog_8d8425f3010106j5.html
(2012-06-03 09:40:18)
使用布局机制组织界面元素:布局控件有QHBoxLayout,QVBoxLayout及QGridLayout.分别是水平布局,垂直布局和网格布局控件.其他控件可放置与其上,当窗体大小改变的时候会自动调整界面元素位置和大小.QT还提供了一个伸展器控件,放置与布局控件的空闲部位使其他元素位置总是居上或居下.
在主窗体上创建菜单栏,工具栏:在头文件中声明QAction对象,每个QAction对应一个菜单栏、工具栏对象。在构造函数中实例化这些Action并将其显示在菜单栏或工具栏上。
newAction = new QAction(tr("&New"), this);
newAction->setIcon(QIcon(":/images/new.png"));//设置资源中的图片文件作为其图标
newAction->setShortcut(QKeySequence::New);//设置快捷键 键值与系统有关
newAction->setStatusTip(tr("Create a new spreadsheet file"));//鼠标经过时显示在状态栏上的文字
connect(newAction, SIGNAL(triggered()), this, SLOT(newFile()));//设置信号-槽关联
fileMenu = menuBar()->addMenu(tr("&File"));//创建顶层菜单 文件菜单
fileMenu->addAction(newAction);//将上面创建的Action添加到菜单上
fileToolBar = addToolBar(tr("&File"));//创建工具栏
fileToolBar->addAction(newAction);//将上面创建的Action添加到工具栏上
如果要创建部件的右键菜单,需要将Action添加到部件,并设置部件的上下文菜单的策略.更高级的实现方式是重写部件的contextMenuEvent方法,创建一个QMenu窗口,在其中添加动作后调用exec()函数.
部件对象->addAction(newAction);
部件对象->setContextMenuPolicy(Qt::ActionsContextMenu);
设置状态栏首先需要向状态栏添加控件用来显示信息.
locationLabel = new QLabel("W999");
locationLabel->setAlignment(Qt::AlignHCenter);
locationLabel->setMinimumSize(locationLabel->sizeHint());
locationLabel->setIndent(3);//设置扩展因子,在状态栏大小发生变化是自动调整区域,默认扩展因子为0,表示大小不发生变化.
statusBar()->addWidget(locationLabel);//向状态栏添加控件

浙公网安备 33010602011771号