我已經看過python - Pygtk VS Pyqt VS WxPython VS Tkinter;我的問題稍有不同。例如,我使用的是Ubuntu Gnome,那裏的python-qt並不是默認安裝的;所以如果我想使用python-qt應用程序,我必須下載python-qt(加上qt庫)。我期望它可能是類似於KDE(或其他)臺式機的東西...Python - 用於GUI庫的跨平臺包裝器?
那麼,通常我需要製作一個非常簡單的GUI,並且我希望它能夠「隨處運行「哪裏有Python ......但是,如果用戶已經擁有這些庫中的一些,我會說,爲什麼不使用它們?對於複雜的東西,顯然一個包羅萬象的包裝是不可行的(畢竟,所有這些庫都是跨平臺的),但對於簡單的東西,比如下面的「hello work」例子,可能有一些已經存在的東西?
相較於下面的例子中,我想像類似的信息(僞):
...
appgui = getCrossPlatformGUI()
mw = appgui.getMainWindow()
button = appgui.getButton(args)
appgui.connect(button, args)
appgui.show(button)
...
...在Linux上,其中getCrossPlatformGUI()
將首先尋找python-qt
,如果沒有找到,那麼python-gtk
,然後wxWindows
,然後tkInter
(在Windows上可能以不同的順序,等等) - 並將提供一個窗口/應用程序的庫已在系統上找到,默認情況下在所有情況下tkInter
(據我所知,它始終建立在Python )。
非常感謝任何答案,
乾杯!
hello-pyqt.py
(,)
#!/usr/bin/env python
# http://en.wikibooks.org/wiki/Python_Programming/PyQt4#Hello.2C_world.21
import sys
from PyQt4 import Qt, QtCore
def sayHello():
print "Hello, World!"
#####
a = Qt.QApplication(sys.argv)
hellobutton = Qt.QPushButton("Say 'Hello world!'", None)
a.connect(hellobutton, Qt.SIGNAL("clicked()"), sayHello)
hellobutton.clicked.connect(QtCore.QCoreApplication.instance().quit)
hellobutton.show()
a.exec_()
hello-pygtk.py
(,)
#!/usr/bin/env python
# http://www.pygtk.org/pygtk2tutorial/examples/helloworld.py
import pygtk
pygtk.require('2.0')
import gtk
# This is a callback function. The data arguments are ignored
# in this example. More on callbacks below.
def sayHello(widget, data=None):
print "Hello, World!"
def destroy(widget, data=None):
gtk.main_quit()
#####
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", destroy)
hellobutton = gtk.Button("Say 'Hello world!'")
hellobutton.connect("clicked", sayHello, None)
hellobutton.connect_object("clicked", gtk.Widget.destroy, window)
window.add(hellobutton)
hellobutton.show()
window.show()
gtk.main()
然後,當有人想運行* your *應用程序時,他們將不得不下載並安裝這個跨平臺的GUI庫抽象庫。 – icktoofay
http://xkcd.com/927/ – Blair
感謝您的評論,@icktoofay - 我看到了諷刺;但我希望包裝將只是一個文件(將與應用程序一起下載):)乾杯! – sdaau