作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个项目,我想从 MySQL 数据库加载数据并将其显示在 PyGTK 应用程序中以便于查看和配置。我的目标是让程序根据数据库内容自动添加新行,即。如果我向数据库添加一个新命令,我不需要对我的 GTK 应用程序进行任何更改。
这是我的测试数据库:
+----+----------+---------+----+--------+
| id | name | enabled | op | desc |
+----+----------+---------+----+--------+
| 1 | !help | 1 | 0 | blabla |
| 2 | !version | 1 | 1 | blabla |
| 3 | !tp | 0 | 1 | blabla |
+----+----------+---------+----+--------+
我想(动态地)创建一个看起来像这样的 GTK 应用程序: http://i.imgur.com/EMhkz.png
我之前有一些使用 python 的经验,但没有那么多 GTK,我不确定如何解决这个问题。有人可以给我一个工作示例吗?
问候奥斯卡
最佳答案
你可以试试这个。我会让你填写细节,比如 MySQL 的东西。这里的重要部分,使小部件看起来均匀分布的是参数
gtk.HBox(homogeneous=True)
否则它们会到处都是,只占用展示自己所需的空间。
希望这就是您所追求的。
import pygtk
pygtk.require20()
import gtk
data = [['1', '!help', '1', '0', 'blabla'],
['2', '!version', '1', '1', 'blabla'],
['3', '!tp', '0', '1', 'blabla']]
def main():
window = gtk.Window()
window.set_title('Dynamic controls')
window.connect("delete_event", gtk.main_quit)
vbox = gtk.VBox()
window.add(vbox)
for row in data:
hbox = gtk.HBox(homogeneous=True)
hbox.pack_start(gtk.Label(row[1]))
enabled_checkbox = gtk.CheckButton('Enabled')
enabled_checkbox.set_active(row[2] is '1')
hbox.pack_start(enabled_checkbox)
op_checkbox = gtk.CheckButton('OP')
op_checkbox.set_active(row[3] is '1')
hbox.pack_start(op_checkbox)
hbox.pack_start(gtk.Label(row[4]))
vbox.pack_start(hbox)
window.show_all()
gtk.main()
if __name__ == '__main__':
main()
关于Python + pygtk 从数据库生成复选框表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334513/
我是一名优秀的程序员,十分优秀!