آموزش پای کیوت (designer) بخش دوم

در ادامه بحث طراحی برنامه با استفاده از دیزاینر  به سبک دوم استفاده از این ابزار اشاره ای می کنیم . برنامه مثال ما بازهم همون مثال در بخش پیشین هستش که با سبک دیگه ای پیادش می کنم. در این روش فایل ui طراحی شده با دیزاینر رو به کد پایتون تبدیل می کنم و از اون در اسکریپتم استفاده می کنم

 

بازهم همون فرم myUi.ui  .  برای تبدیل این فایل  به پایتون باید از cmd ویندوز کمک بگیریم . از run در منوی استارت cmd رو فرا می خونیم و با تایپ دستور زیر به مسیر پوشه uic در دایرکتوری پای کیوت می ریم:

cd C:\Python27\Lib\site-packages\PyQt4\uic

و سپس دستور زیر رو تایپ می کنیم:

pyuic4 f:/myUi.ui -x> f:/myUi.py

فایل ui من در درایو f  هستش و فایل py خروجی رو هم در کنارش قرار می ذارم  با استفاده ازsyntax زیر:

pyuic4 [1] -x> [2]

کروشه اولی  مسیر فایل ui  و دومی مسیر و نام خروجی py رو مشخص می کنه.

در کنار این فایل پایتون تولید شده از ui من فایل اصلی برنامه رو می نویسم  که کد زیر درونش تایپ شده:

#!/usr/bin/env python
import sys

from PyQt4 import QtCore, QtGui, uic

from myUi import Ui_Form

class window(QtGui.QDialog):
    def __init__(self):
        super(window, self).__init__()

        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.ui.helloB.clicked.connect(self.printHello)
    def printHello(self):
        name = self.ui.nameEdit.text()
        self.ui.browser.setText('Hello %s! welcome to dotPy.ir'%name)
if __name__=="__main__":
    app = QtGui.QApplication(sys.argv)
    form = window()
    form.show()
    sys.exit(app.exec_())

فایل رو ذخیره  و اجرا کنین . برنامه کار می کنه:)

10 دیدگاه برای «آموزش پای کیوت (designer) بخش دوم»

  1. آقا بسیار عالی بود!
    واقعا دمت گرم٫من عاشقه پایتون هستم!
    راستی من فک میکنم که نظر شما درسته که اگه PyQt رو دستی کد بدیم بهتر و حرفه ایی تره!ولی وقتی برای سریعتر کردن کار میشه با دیزاینر طرح رو ساخت و بعد با تبدیل کردن به کد پایتون بیشتر روش مانور اومدو کاستومایزش کرد!
    من میخوام بگم که اول طراحی با دیزاینر رو خوب و کامل یاد بدین بعد بریم سراغه کد زنی!
    و تورو خدا ادامه بده!خیلی عالیه و خدا قووت!
    واقعا من نیاز دارم به دانشت!چون دقیقا افکارم بشما نزدیکه!
    ali hallaji

  2. سلام
    من با دیزاینر طراحی کردم ولی خروجیش اون main رو نداره خودم اضافه کردم ولی چون __init__ نداره به show اتربیوت نمیکنه چکار کنم مثلا همین بشه صفحه اصلی برنامه؟

    # -*- coding: utf-8 -*-

    # Form implementation generated from reading ui file ‘untitled.ui’
    #
    # Created by: PyQt4 UI code generator 4.11.4
    #
    # WARNING! All changes made in this file will be lost!

    from PyQt4 import QtCore, QtGui
    from PyQt4 import phonon
    try:
    _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
    def _fromUtf8(s):
    return s

    try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
    return QtGui.QApplication.translate(context, text, disambig, _encoding)
    except AttributeError:
    def _translate(context, text, disambig):
    return QtGui.QApplication.translate(context, text, disambig)

    class Ui_Form(object):
    def setupUi(self, Form):
    Form.setObjectName(_fromUtf8(“Form”))
    Form.resize(640, 480)
    self.videoPlayer = phonon.Phonon.VideoPlayer(Form)
    self.videoPlayer.setGeometry(QtCore.QRect(150, 40, 300, 200))
    self.videoPlayer.setObjectName(_fromUtf8(“videoPlayer”))
    self.seekSlider = phonon.Phonon.SeekSlider(Form)
    self.seekSlider.setGeometry(QtCore.QRect(240, 310, 84, 22))
    self.seekSlider.setObjectName(_fromUtf8(“seekSlider”))
    self.volumeSlider = phonon.Phonon.VolumeSlider(Form)
    self.volumeSlider.setGeometry(QtCore.QRect(230, 390, 109, 22))
    self.volumeSlider.setObjectName(_fromUtf8(“volumeSlider”))

    self.retranslateUi(Form)
    QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
    Form.setWindowTitle(_translate(“Form”, “Form”, None))

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *