随笔-18  评论-11  文章-12  trackbacks-0

      对于QT的学习,一直处于半懂不懂的状态,看文档也只处于“貌似”的境界,导致真正碰到问题时就个屁掉。这次阅读basiclayout的demo说明,甚感惭愧,之前学得太肤浅。

      1. 设计一个窗体,安排好它的函数和属性。

      2. 基本的layout包括四类,QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout。前两个将widget水平或竖直防止,grid将widget以格子的形式放置,formlayout将widget以row的形式放置。

      3. layout的使用方法是,先定一个layout,再向这个layout中添加widget,然后使用父类中的setlayout(),设置这个widget的layout。

      4. layout有一个setMenubar,可以使得Dialog也可以设置菜单栏。

      5. 在定义类时,定义一个enum,之后就可以直接使用这个enum中的元素。

      6. QT赋参数的方法为tr("Button %1").arg(i + 1)。

      7. QGridLayout有setColumnStretch(int, int)方法,用于设置grid中格子的伸长因子,也就是能够占用多大的空间。

      8. QDialogButtonBox指用于确定/退出的button组。它是这两类常用button的一个box组合。

      9. 本例中涉及到的其它widget包括:

             a.  QTextEdit,文本编辑框,支持plain text和html text

             b.  QPushButton,按钮

             c.  QGroupBox,将widget以box的形式组织在一起

             d. QLineEdit,行编辑框

             e. QComboBox,下拉框

             f. QSpinBox,spin框,提供数值选择。

posted on 2009-02-16 22:28 ronliu 阅读(9601) 评论(3)  编辑 收藏 引用

评论:
# re: QT编程之Layout 2009-02-24 17:17 | 单曲旋律
formlayout将widget以row的形式放置。

我一直觉得formlayout 怪怪的,不会用
不过其他三个已经足够用了。

layout一般是在ui在已经布好了
如果自己布局的话,设置好layout->addWidget(,,,)里面的4个参数就好了

  回复  更多评论
  
# re: QT编程之Layout 2009-03-05 20:31 | whisper
可不可以帮个忙指导一下

我用一个QHBoxLayout类的HLayout添加两个控件之后,想把HBoxLayout利用this->setLayout(&HBoxLayout)命令添加到主窗体中,但是运行时出现这个错误:
QWidget::setLayout:
Attempting to set QLayout "" on MainWindow "MainWindowClass", which already has a layout

无法实现HBoxLayout的功能,要怎么办?  回复  更多评论
  
# re: QT编程之Layout 2009-12-17 10:11 | easy
MainWindow本身有布局
把继承的类改为QWidget就行了  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理