QDialog nasıl yükleyebilirim?

Başlatan ozgurche, 23 Ekim 2014 - 15:30:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

ozgurche

Selamlar, aşağıdaki adres defteri uygulamasında (mustafa başer'in kitabından)

Traceback (most recent call last):
  File "/home/compaq/bin/pythonkitap/sayfa333.py", line 5, in <module>
    class adresdefteri(QDialog):
NameError: name 'QDialog' is not defined


hatsını veriyor. Bu modülü nasıl yükleyebilir ve nasıl import edebilirim.

program kodu:

from PyQt4.QtCore import *

import sys, os

class adresdefteri(QDialog):
       
       
        def __init__(self, veri, Parent=None):
                super(adresdefteri, self).__init__(Parent)
               
                self.veri=veri
                anaIzgara=QGridLayout()
                anaIzgara.addWidget(QLabel('Adi:'),0,0)
                self.adi=QLineEdit(self.veri['adi'])
                anaIzgara.addWidget(self.adi,0,1)
               
                anaIzgara.addWidget(QLabel('Soyadi:  '),1,0)
                self.soyadi=QLineEdit(self.veri['soyadi'])
                anaIzgara.addWidget(self.soyadi,1,1)
               
                foto=QLabel()
                foto.setPixmap(QPixmap(self.veri['resim']).scaled(100,125))
                anaIzgara.addWidget(foto,0,2,5,1)
               
                anaIzgara.addWidget(QLabel('Unvani: '),2,0)
                self.unvan=QLineEdit(self.veri['unvani'])
                anaIzgara.addWidget(self.unvan,2,1)
               
                anaIzgara.addWidget(QLabel('Kurum: '),3,0)
                self.kurum=QLineEdit(self.veri['Kurum: '])
                anaIzgara.addWidget(self.kurum,3,1)
               
                anaIzgara.addWidget(QLabel('GSM: '),4,0)
                self.gsm=QLineEdit(self.veri['GSM: '])
                anaIzgara.addWidget(self.gsm,4,1)
               
                self.sekme=QTabWidget()
               
                self.sekme.addTab(self.epostasekmesi(),
                                                        QIcon(iconPath+ 'sc_sendmail.png'),
                                                        'E-posta')
                self.sekme.addTab(self.evsekmesi(),
                                                        QIcon(iconPath+'..sc06303.png'),
                                                        'ev')
               
                self.sekme.addTab(self.issekmesi(),
                                                        QIcon(iconPath+'..sc06403.png'),
                                                        'is')
                               
                self.sekme.addTab(self.kisiselsekmesi(),
                                                        QIcon(iconPath+'..sc06503.png'),
                                                        'kisisel')
                                                       
               
                anaIzgara.addWidget(self.sekme,5,0,1,4)
               
                dugmekutusu=QDialogButtonBox(QDialogButtonBox.Ok|
                                                                                QDialogButtonBox.Cancel)
                                                                               
                dugmekutusu.button(QDialogButtonBox.Ok).setText('Tamam')
                dugmekutusu.button(QDialogButtonBox.Cancel).setText('Vazgec')
               
                self.connect(dugmekutusu, SIGNAL('accepted()'), self.accept)
                self.connect(dugmekutusu, SIGNAL('rejected()'), self.reject)
                anaIzgara.addWidget(dugmekutusu,6,0,1,4)
               
                self.setLayout(anaIzgara)
                self.resize(350,350)
                self.setMinimumSize(350,350)
                self.setMaximumSize(350,350)
                self.setWindowIcon(QIcon(iconPath+'lc_senmail.png'))
                self.setWindowTitle('Adres Defteri')
               
        def epostasekmesi(self):
                epostaparca=QWidget()
                epostaIzgara=QGridLayout()
                epostaparca.setLayout(epostaIzgara)
               
                epostaIzgara.addWidget(QLabel('E-posta adresleri:'),0,0)
                self.epostaliste=QListWidget()
                self.epostaliste.setMaximumSize(300,150)
                epostaIzgara.addWidget(self.epostaliste,1,0)
                self.postalariguncelle()
               
                epostadugmeleri=QVBoxLayout()
                epostaIzgara.addLayout(epostadugmeleri,1,1)
                epostaekledugme=QPushButton('Ekle')
                self.connect(epostaekledugme, SIGNAL('pressed()'),
                                         self.epostaekle)
                                         
                epostadugmeleri.addWidget(epostaekledugme)
                epostaduzenledugme=QPushButton('Duzenle')
                epostadugmeleri.addWidget(epostaduzenledugme)
                epostavarsayilandugme=QPushButton('Varsayilan')
                self.connect(epostavarsayilandugme,
                                        SIGNAL('pressed()'), self.varsayilanyap)
                                       
                epostadugmeleri.addWidget(epostavarsayilandugme)
               
                epostasildugme=QPushButton('Sil')
                self.connect(epostasildugme, SIGNAL('pressed()'), self.epostasil)
                epostadugmeleri.addWidget(epostasildugme)
               
                epostadugmeleri.addStretch()
                return epostaparca
               
                def evsekmesi(self):
                        pass
               
                def issekmesi(self):
                        pass
                       
                def kisiselsekmesi(self):
                        pass
                       
                def postalariguncelle(self):
                        self.epostaliste.clear()
                        c=0
                        varsayilan=self.veri['varsayilaneposta']
                        for e in self.veri['epostalar']:
                                ekle=e+'(varsayilan)' if c== varsayilan else e
                                self.epostaliste.addItem(ekle)
                                c=c+1
                       
                def epostasil(self):
                        indis=self.epostaliste.currentRow()
                        if indis> -1:
                                self.veri['epostalar'].pop(indis)
                                if indis == self.veri['varsayilaneposta']:
                                        self.veri['varsayilaneposta']=None
                                self.postalariguncelle()
                               
                def varsayilanyap(self):
                        indis=self.epostaliste.currentRow()
                        if indis> -1:
                                self.veri['varsayilaneposta']=indis
                                self.epostalariguncelle()
                               
                def epostaekle(self):
                        adres=epostaDlg()
                        if adres.exec_():
                                self.veri['epostalar'].append(str(adres.eposta.text()))
                                self.postalariguncelle()
                               
                        del adres
                       
class epostaDlg(QDialog):
        def __init__(self, Parent=None):
                super(epostaDlg, self).__init__(Parent)
               
       
                       
                               
                               
                izgara=QGridLayout()
                izgara.addWidget(QLabel('E-posta adresi: '),0,0)
                self.eposta=QLineEdit()
                izgara.addWidget(self.eposta,0,1)
                               
                self.connect(self.eposta,
                                SIGNAL('textChanged(QString)'),
                self.adresdenetle)
                                                       
                self.dugmeler=QDialogButtonBox(
                QDialogButtonBox.Ok|
                QDialogButtonBox.Cancel)
                                                               
                                                               
                self.dugmeler.button(QDialogButtonBox.Ok).setText('Tamam')
                self.dugmeler.button(QDialogButtonBox.Cancel).setText('Vazgec')
                self.dugmeler.button(QDialogButtonBox.Ok).setDisabled(True)
                               
                self.connect(self.dugmeler,
                        SIGNAL('accepted()'), self.accept);
                               
                               
                               
                               
                                                         
                                                               
                self.connect(self.dugmeler,
                                SIGNAL('rejected()'), self.reject);
                                                               
                izgara.addWidget(self.dugmeler,1,0,1,2)
                               
                self.setLayout(izgara)
                self.setWindowTitle('E-posta adresi ekle')
                               
                self.setWindowIcon(QIcon(IconPath+' lc_sendmail.png'))
        def adresdenetle(self, adres):
               
                adres=str(adres)
               
               
                               
                               
                if re.search('(\w+)@(\w+)\.(\w+)', adres):
                       
                        self.dugmeler.button(QDialogButtonBox.Ok).setDisabled(False)
                else:
                       
                        self.dugmeler.button(QDialogButtonBox.Ok).setDisabled(True)
                                               
uygulama=QApplication(sys.argv)
pencere=adresdefteri({

                                        'adi':'ozgur',
                                        'soyaadi':'che',
                                        'unvani':'elektrik',
                                        'kurum': 'xyz',
                                        'gsm': '01234567',
                                        'resim':'abc.png',
                                        'epostalar':['abc@gmail.com', 'abc@hotmail.com'],
                                        'varsayilaneposta':1,
                                        })
                                       
pencere.show()
uygulama.exec_()

                                               
                                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                                       

                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                                                               
                               
                                                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                               
                       
                       
                       
                       
                       
                       
                       
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                               
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
                                                       
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               

heartsmagic

Balık tutmayı öğretmek biraz daha faydalı olabilir :)

sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search qdialog


Sonuç:
grads: /usr/share/doc/grads/html/gradcomdqdialog.html
libqt4-dev: /usr/include/qt4/Qt/qdialog.h
libqt4-dev: /usr/include/qt4/Qt/qdialogbuttonbox.h
libqt4-dev: /usr/include/qt4/QtGui/qdialog.h
libqt4-dev: /usr/include/qt4/QtGui/qdialogbuttonbox.h
libqt4-private-dev: /usr/include/qt4/QtGui/private/qdialog_p.h
libqt4-private-dev: /usr/include/src/gui/dialogs/qdialog_p.h
libqtscript4-doc: /usr/share/doc/libqtscript4-doc/api/qdialog.html
libqtscript4-doc: /usr/share/doc/libqtscript4-doc/api/qdialogbuttonbox.html
pyqt5-dev: /usr/share/sip/PyQt5/QtWidgets/qdialog.sip
pyqt5-dev: /usr/share/sip/PyQt5/QtWidgets/qdialogbuttonbox.sip
pyqt5-doc: /usr/share/doc/pyqt5-doc/html/_sources/api/qdialog.txt
pyqt5-doc: /usr/share/doc/pyqt5-doc/html/_sources/api/qdialogbuttonbox.txt
pyqt5-doc: /usr/share/doc/pyqt5-doc/html/api/qdialog.html
pyqt5-doc: /usr/share/doc/pyqt5-doc/html/api/qdialogbuttonbox.html
python-qt4-dev: /usr/share/sip/PyQt4/QtGui/qdialog.sip
python-qt4-dev: /usr/share/sip/PyQt4/QtGui/qdialogbuttonbox.sip
python-qt4-doc: /usr/share/doc/python-qt4-doc/html/qdialog.html
python-qt4-doc: /usr/share/doc/python-qt4-doc/html/qdialogbuttonbox-standardbuttons.html
python-qt4-doc: /usr/share/doc/python-qt4-doc/html/qdialogbuttonbox.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialog-members.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialog-obsolete.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialog-qt3.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialog.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialogbuttonbox-members.html
qt4-doc-html: /usr/share/qt4/doc/html/qdialogbuttonbox.html
qtbase5-dev: /usr/include/qt5/QtWidgets/qdialog.h
qtbase5-dev: /usr/include/qt5/QtWidgets/qdialogbuttonbox.h
qtbase5-doc-html: /usr/share/qt5/doc/qtwidgets/qdialog-members.html
qtbase5-doc-html: /usr/share/qt5/doc/qtwidgets/qdialog-obsolete.html
qtbase5-doc-html: /usr/share/qt5/doc/qtwidgets/qdialog.html
qtbase5-doc-html: /usr/share/qt5/doc/qtwidgets/qdialogbuttonbox-members.html
qtbase5-doc-html: /usr/share/qt5/doc/qtwidgets/qdialogbuttonbox.html
qtbase5-private-dev: /usr/include/qt5/QtWidgets/5.2.1/QtWidgets/private/qdialog_p.h


libqt4-dev olabilir mi aradığın paket? python-qt4-dev paketi de düşünülebilir yedek olarak.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.