• 10758阅读
  • 12回复

[讨论]如何实现这样的工具栏? [复制链接]

上一主题 下一主题
离线facatcool
 
只看楼主 正序阅读 楼主  发表于: 2011-04-01
如题。
我原来用addAction函数添加工具栏,但生成的工具栏左边没有那些点,也就是说不能生成可移动的工具栏。如果要实现图片中的效果应该怎么做呢?
[ 此帖被facatcool在2011-04-01 00:14重新编辑 ]
离线facatcool
只看该作者 12楼 发表于: 2011-04-03
引用第11楼facatcool于2011-04-03 12:33发表的  :
为什么我尝试去移动工具栏的时候会出现runtime error?

原来要在QMainwindow中使用addtoolbar添加。
离线facatcool
只看该作者 11楼 发表于: 2011-04-03
为什么我尝试去移动工具栏的时候会出现runtime error?
离线facatcool
只看该作者 10楼 发表于: 2011-04-03
引用第9楼linxy于2011-04-02 16:27发表的  :
知道怎么弄了~~~~
将mainwindow作为tabwidget里边的页,为mainwindow添加toolbar,就可以了

嗯 是这样的,谢谢。
离线linxy

只看该作者 9楼 发表于: 2011-04-02
知道怎么弄了~~~~
将mainwindow作为tabwidget里边的页,为mainwindow添加toolbar,就可以了
离线linxy

只看该作者 8楼 发表于: 2011-04-02
引用第2楼facatcool于2011-04-01 00:31发表的  :
我用的就是这个工具类


请问一下你如何将TABWIDGET放在TOOLBAR的上面,我实现的时候toolbar会被tabwidget盖住。
离线83888788
只看该作者 7楼 发表于: 2011-04-01
学习了
了解了一个QTabWidget 控件
离线facatcool
只看该作者 6楼 发表于: 2011-04-01
引用第5楼dbzhang800于2011-04-01 09:14发表的  :
这个应该不用解释了(再简化的话就不是完整的程序)
[code]import sys
from PySide.QtGui import *
.......

如果用这种方式的话tabwidget就会占满整个窗口,但我又不想要她占满整个窗口。
离线dbzhang800

只看该作者 5楼 发表于: 2011-04-01
引用第4楼facatcool于2011-04-01 08:40发表的  :
我不太懂上面的语法。上面是把toolbar附到mianwindow上而不是tabwidget上?

这个应该不用解释了(再简化的话就不是完整的程序)
  1. import sys
  2. from PySide.QtGui import *
  3. app = QApplication(sys.argv)
  4. w = QTabWidget()
  5. page = QMainWindow()
  6. toolbar = QToolBar(page)
  7. toolbar.addAction(QAction(page.style().standardIcon(QStyle.SP_ArrowBack), "back",  page))
  8. page.addToolBar(toolbar)
  9. w.addTab(page, "Page")
  10. w.show()
  11. sys.exit(app.exec_())
离线facatcool
只看该作者 4楼 发表于: 2011-04-01
引用第3楼dbzhang800于2011-04-01 07:48发表的  :
工具栏的浮动是靠QMainWindow提供的layout来实现的,所以,你应该考虑用QMainWindow
[图片]
完整代码:
.......

我不太懂上面的语法。上面是把toolbar附到mianwindow上而不是tabwidget上?
离线dbzhang800

只看该作者 3楼 发表于: 2011-04-01
引用楼主facatcool于2011-04-01 00:14发表的 如何实现这样的工具栏? :
如题。
我原来用addAction函数添加工具栏,但生成的工具栏左边没有那些点,也就是说不能生成可移动的工具栏。如果要实现图片中的效果应该怎么做呢?
[图片]  

工具栏的浮动是靠QMainWindow提供的layout来实现的,所以,你应该考虑用QMainWindow


完整代码:
  1. from PySide import QtGui
  2. class Page(QtGui.QMainWindow):
  3.     def __init__(self, parent=None):
  4.         super(Page, self).__init__(parent)
  5.         toolBar = QtGui.QToolBar(self)
  6.         toolBar.addAction(QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowBack), "back",  self))
  7.         toolBar.addAction(QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ArrowForward), "forward",  self))
  8.         self.addToolBar(toolBar)
  9. class Widget(QtGui.QTabWidget):
  10.     def __init__(self, parent=None):
  11.         super(Widget, self).__init__(parent)
  12.         for i in range(4):
  13.             self.addTab(Page(self), "Page%d"%i)
  14. if __name__ == "__main__":
  15.     import sys
  16.     app = QtGui.QApplication(sys.argv)
  17.     w = Widget()
  18.     w.show()
  19.     sys.exit(app.exec_())
离线facatcool
只看该作者 2楼 发表于: 2011-04-01
引用第1楼wxj120bw于2011-04-01 00:31发表的  :
不知道楼主用没用QToolBar这个类生成工具栏 这个应该可以移动


我用的就是这个工具类
离线wxj120bw

只看该作者 1楼 发表于: 2011-04-01
引用楼主facatcool于2011-04-01 00:14发表的 如何实现这样的工具栏? :
如题。
我原来用addAction函数添加工具栏,但生成的工具栏左边没有那些点,也就是说不能生成可移动的工具栏。如果要实现图片中的效果应该怎么做呢?
[图片]  

不知道楼主用没用QToolBar这个类生成工具栏 这个应该可以移动
快速回复
限100 字节
 
上一个 下一个