|
|
|
#!/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 qt
|
|
|
|
|
|
|
|
class Button(qt.TQPushButton):
|
|
|
|
def __init__(self, *args):
|
|
|
|
qt.TQPushButton.__init__(*(self,) + args)
|
|
|
|
|
|
|
|
class ComboBox(qt.TQHBox):
|
|
|
|
def __init__(self, parent, caption, items = []):
|
|
|
|
qt.TQHBox.__init__(self, parent)
|
|
|
|
self.setSpacing(6)
|
|
|
|
label = qt.TQLabel(str(caption), self)
|
|
|
|
self.combobox = qt.TQComboBox(self)
|
|
|
|
self.setStretchFactor(self.combobox, 1)
|
|
|
|
label.setBuddy(self.combobox)
|
|
|
|
for item in items:
|
|
|
|
self.combobox.insertItem( str(item) )
|
|
|
|
|
|
|
|
class FileChooser(qt.TQHBox):
|
|
|
|
def __init__(self, *args):
|
|
|
|
qt.TQHBox.__init__(*(self,) + args)
|
|
|
|
self.defaultfilename = "~/output.html"
|
|
|
|
|
|
|
|
self.setSpacing(6)
|
|
|
|
label = qt.TQLabel("File:", self)
|
|
|
|
self.edit = qt.TQLineEdit(self)
|
|
|
|
self.edit.setText(self.defaultfilename)
|
|
|
|
self.setStretchFactor(self.edit, 1)
|
|
|
|
label.setBuddy(self.edit)
|
|
|
|
|
|
|
|
browsebutton = Button("...", self)
|
|
|
|
qt.TQObject.connect(browsebutton, qt.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 = qt.TQFileDialog.getOpenFileName(self.defaultfilename, "*.html", self, "Save to file")
|
|
|
|
if filename != None and filename != "":
|
|
|
|
self.edit.setText(filename)
|
|
|
|
|
|
|
|
class Dialog(qt.TQDialog):
|
|
|
|
def __init__(self, parent = None, name = None, modal = 0, fl = 0):
|
|
|
|
qt.TQDialog.__init__(self, parent, name, modal, fl)
|
|
|
|
qt.TQDialog.accept = self.accept
|
|
|
|
self.setCaption("Export to HTML")
|
|
|
|
#self.layout()
|
|
|
|
|
|
|
|
self.layout = qt.TQVBoxLayout(self)
|
|
|
|
self.layout.setSpacing(6)
|
|
|
|
self.layout.setMargin(11)
|
|
|
|
|
|
|
|
infolabel = qt.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 = qt.TQHBox(self)
|
|
|
|
buttonbox.setSpacing(6)
|
|
|
|
self.layout.addWidget(buttonbox)
|
|
|
|
|
|
|
|
savebutton = Button("Save", buttonbox)
|
|
|
|
qt.TQObject.connect(savebutton, qt.SIGNAL("clicked()"), self, qt.SLOT("accept()"))
|
|
|
|
#qt.TQObject.connect(savebutton, qt.SIGNAL("clicked()"), self.exportButtonClicked)
|
|
|
|
|
|
|
|
cancelbutton = Button("Cancel", buttonbox)
|
|
|
|
qt.TQObject.connect(cancelbutton, qt.SIGNAL("clicked()"), self, qt.SLOT("close()"))
|
|
|
|
|
|
|
|
def accept(self):
|
|
|
|
print("ACCEPTTTTTTTT !!!!!!!!!!!!!!!!!!!!!!!!!!!!")
|
|
|
|
|
|
|
|
file = qt.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 qt.TQDialog.event(self, e)
|
|
|
|
|
|
|
|
app = qt.tqApp
|
|
|
|
dialog = Dialog(app.mainWidget(), "Dialog", 1)
|
|
|
|
dialog.show()
|
|
|
|
|
|
|
|
print("################## BEGIN")
|
|
|
|
#TkTest()
|
|
|
|
TQtTest()
|
|
|
|
print("################## END")
|