0

一般的に、ユーザーが選択したデータベースに接続したい。

私は2つのモジュール、dblogin.pyとxconn.pyを使用しています

dblogin.py はユーザーが目的のデータ名を設定するための GUI であり、xconn.py は postgresql への接続です。

問題は、dblogin.py で dbedit の値を取得できないことです。どうすれば修正できますか?

答えてくれてありがとうb4.... Gbuすべて......

よろしく、イデ

dblogin.py

class dblog(QDialog):
def __init__(self):
    super(dblog, self).__init__()
    self.dblabel = QLabel('Database Name')
    self.dbedit = QLineEdit('')

    #create button        
    ...

    #set layout in grid

    #action for button
    self.connect(self.connectbutton, SIGNAL('clicked()'),self.connectaction)

def connectaction(self):                
    self._data = self.dbedit.text()
    if self._data == '':
        _msg = QMessageBox.information(self,'information','Nama Database harus diisi !',QMessageBox.Ok)
        self.dbedit.setFocus()
    else:
        try:
            xconn.getconn()
            _msg = QMessageBox.information(self,'information','Tunggu, Check database struktur!',QMessageBox.Ok)
        except:
            _msg = QMessageBox.information(self,'information','Database tidak ditemukan !',QMessageBox.Ok)

xconn.py

import psycopg2
import dblogin

def getconn():    
    _host = '127.0.0.1'
    _user = 'postgres'
    _pass = 'xxx'
    _data = dblogin.dblog.getdb()          

    conn = psycopg2.connect(database=_data, user=_user, password=_pass, host=_host)
    return conn
4

1 に答える 1

1

QDialog クラスは、大文字のクラス DBLog で始まる必要があります。標準ボタンを使用できます。

    self.buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel)

QLineEdit からのテキストを戻り値として設定するには、accept メソッドを再実装します。

    self.buttonBox.accepted.connect(self.accept)

    def accept(self):
    self._data = self.dbedit.text()
    self.done(1)

次に、xconn で DBLog のインスタンスを作成し、Dialog のみを使用してこの値を取得します。次に、xconn.py から次のようにします。

    dblog = DBLog() # create an instance for your dialog
    if dblog:
         _data = dblog._data
    else:
         Dialog not accepted
于 2012-05-20T09:53:06.953 に答える