You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/lib/kross/test/testgui.py

150 lines
4.5 KiB

#!/usr/bin/env python
"""
This Python script demonstrates the usage of the Kross
python-interface to access KexiDB functionality from
within Python.
"""
class TkTest:
def __init__(self):
import tkinter
self.root = tkinter.Tk()
self.root.title("TkTest")
self.root.deiconify()
self.mainframe = tkinter.Frame(self.root)
self.mainframe.pack()
self.button1 = tkinter.Button(self.mainframe, text="Button1", command=self.callback1)
self.button1.pack(side=tkinter.LEFT)
self.button2 = tkinter.Button(self.mainframe, text="Button2", command=self.callback2)
self.button2.pack(side=tkinter.LEFT)
self.exitbutton = tkinter.Button(self.mainframe, text="Exit", command=self.root.destroy)
self.exitbutton.pack(side=tkinter.LEFT)
self.root.mainloop()
def callback1(self):
import tkinter.messagebox
tkinter.messagebox.showinfo("Callback1", "Callback1 called.")
def callback2(self):
import tkinter.messagebox
tkinter.messagebox.showinfo("Callback2", "Callback2 called.")
class TQtTest:
def __init__(self):
from TQt import tqt
class Button(tqt.TQPushButton):
def __init__(self, *args):
tqt.TQPushButton.__init__(*(self,) + args)
class ComboBox(tqt.TQHBox):
def __init__(self, parent, caption, items = []):
tqt.TQHBox.__init__(self, parent)
self.setSpacing(6)
label = tqt.TQLabel(str(caption), self)
self.combobox = tqt.TQComboBox(self)
self.setStretchFactor(self.combobox, 1)
label.setBuddy(self.combobox)
for item in items:
self.combobox.insertItem( str(item) )
class FileChooser(tqt.TQHBox):
def __init__(self, *args):
tqt.TQHBox.__init__(*(self,) + args)
self.defaultfilename = "~/output.html"
self.setSpacing(6)
label = tqt.TQLabel("File:", self)
self.edit = tqt.TQLineEdit(self)
self.edit.setText(self.defaultfilename)
self.setStretchFactor(self.edit, 1)
label.setBuddy(self.edit)
browsebutton = Button("...", self)
tqt.TQObject.connect(browsebutton, tqt.SIGNAL("clicked()"), self.browseButtonClicked)
def file(self):
return self.edit.text()
def browseButtonClicked(self):
filename = None
try:
# try to use the tdefile module included in pytde
import tdefile
filename = tdefile.KFileDialog.getOpenFileName(self.defaultfilename, "*.html", self, "Save to file")
except:
# fallback to TQt filedialog
filename = tqt.TQFileDialog.getOpenFileName(self.defaultfilename, "*.html", self, "Save to file")
if filename != None and filename != "":
self.edit.setText(filename)
class Dialog(tqt.TQDialog):
def __init__(self, parent = None, name = None, modal = 0, fl = 0):
tqt.TQDialog.__init__(self, parent, name, modal, fl)
tqt.TQDialog.accept = self.accept
self.setCaption("Export to HTML")
#self.layout()
self.layout = tqt.TQVBoxLayout(self)
self.layout.setSpacing(6)
self.layout.setMargin(11)
infolabel = tqt.TQLabel("Export the data of a table or a query to a HTML-file.", self)
self.layout.addWidget(infolabel)
source = ComboBox(self, "Datasource:")
self.layout.addWidget(source)
self.exporttype = ComboBox(self, "Style:", ["Plain","Paper","Desert","Blues"])
self.layout.addWidget(self.exporttype)
self.filechooser = FileChooser(self)
self.layout.addWidget(self.filechooser)
buttonbox = tqt.TQHBox(self)
buttonbox.setSpacing(6)
self.layout.addWidget(buttonbox)
savebutton = Button("Save", buttonbox)
tqt.TQObject.connect(savebutton, tqt.SIGNAL("clicked()"), self, tqt.SLOT("accept()"))
#tqt.TQObject.connect(savebutton, tqt.SIGNAL("clicked()"), self.exportButtonClicked)
cancelbutton = Button("Cancel", buttonbox)
tqt.TQObject.connect(cancelbutton, tqt.SIGNAL("clicked()"), self, tqt.SLOT("close()"))
def accept(self):
print("ACCEPTTTTTTTT !!!!!!!!!!!!!!!!!!!!!!!!!!!!")
file = tqt.TQFile( self.filechooser.file() )
#if not file.exists():
# print "File '%s' does not exist." % self.filechooser.file()
#else:
# print "File '%s' does exist." % self.filechooser.file()
def exportButtonClicked(self):
print("Export to HTML !!!!!!!!!!!!!!!!!!!!!!!!!!!!")
def __getattr__(self, attr):
print("=> Dialog.__getattr__(self,attr)")
#def closeEvent(self, ev): pass
def event(self, e):
print("=> Dialog.event %s" % e)
#self.deleteLater()
#support.swapThreadState() # calls appropriate c-function
return tqt.TQDialog.event(self, e)
app = tqt.tqApp
dialog = Dialog(app.mainWidget(), "Dialog", 1)
dialog.show()
print("################## BEGIN")
#TkTest()
TQtTest()
print("################## END")