Quantcast
ADs by Techtunes tAds
ADs by Techtunes tAds

মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-২৬] :: PYQT তে উইন্ডোর ও বাটনের লেআউট ম্যানেজমেন্ট

মজার ও সহজ পাইথন প্রোগ্রামিং

আজ আমরা দেখব কীভাবে পাইকিউটি তে কোন উইন্ডোর লেআউট ঠিক করতে হয়। মূলত লেআউটটা জরুরী এই জন্য যে , আপনি যখন বিভিন্ন প্লাটফর্মে এপ্লিকেশনটা ইউজ করবেন , তখন এটা কাজে লাগে । বা আপনি যখন মেইন উইন্ডো এর সাইজ পরিবর্তন করবেন তখন যাতে উইগেট গুলোর পজিশন চেঞ্জ হয়ে না যায় সেজন্যও এটা কাজে লাগে । তো দেখুন , কীভাবে পাইকউটিতে লেআউট ঠিক করতে হয় । প্রথমে সবাই নিচের কোডটা লিখে ফেলুন :

ADs by Techtunes tAds

import sys
from PyQt4 import QtGui
class Absolute(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setWindowTitle('Layout')
        label = QtGui.QLabel('Pythonbangla', self)
        label.move(15, 10)
        label = QtGui.QLabel('is', self)
        label.move(35, 40)
        label = QtGui.QLabel('one of the', self)
        label.move(55, 65)
        label = QtGui.QLabel('leading python programmers society', self)
        label.move(115, 65)
        label = QtGui.QLabel('in Bangladesh', self)
        label.move(135, 45)
        self.resize(250, 150)
app = QtGui.QApplication(sys.argv)
qb = Absolute()
qb.show()
sys.exit(app.exec_())

দেখুন , এখানে আমরা উইন্ডোর টাইটেল টা সেট করে দিয়েছি ।

self.setWindowTitle('Layout')

লেবেল নামের একটা ভ্যারিয়েবল নিয়ে তার মধ্যে যে লেখাটা সো করতে হবে সেটা লিখেছি ।

label = QtGui.QLabel('Pythonbangla', self)

এখানে লেখার পজিশনটা ঠিক করে দিয়েছি ।

label.move(15, 10)

একইভাবে আমরা অনেক গুলো লেভেল নিয়ে তার পজিশন ঠিক করে দিয়েছি । তারপর আমাদের উইন্ডোটা এমন হয়েছে ।

এবার আমরা উইন্ডো মধ্যে কোন বক্সে লেআউট কীভাবে ঠিক করতে হয় সেটা দেখব । মূলত পাইথনে QHBoxLayout ও QVBoxLayout

নামের দুটি ক্লাস আছে । সেটার মাধ্যমে আমরা এই লেআউটটা ঠিকক কররব । সবাই নীচের কোডটা লিখে ফেলুন :

ADs by Techtunes tAds

import sys
from PyQt4 import QtGui
class BoxLayout(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setWindowTitle('box layout')
#দুটি বাটন ক্রিয়েট করলাম
        ok = QtGui.QPushButton("OK")
        cancel = QtGui.QPushButton("Cancel")
        hbox = QtGui.QVBoxLayout()
#বক্সের জন্য জায়গা তৈরী করা
        hbox.addStretch(1)
#উপরের তৈরী ওকে ও ক্যানসেল বাটনটাকে এর মধ্যে পুশ করলাম ।
        hbox.addWidget(ok)
        hbox.addWidget(cancel)
#ভিবক্স নামের ভ্যারিয়েবলটাকে তৈরী করলাম
        vbox = QtGui.QVBoxLayout()
        vbox.addStretch(1)
#ভিবক্সের লেরআউট এর মধ্যে এইচ বক্সকে পুশ করলাম । অর্থাৎ উপরের বাটন ২ টি কে ভার্টিক্যালি সেট করলাম ।
        vbox.addLayout(hbox)
        self.setLayout(vbox)
        self.resize(300, 150)
app = QtGui.QApplication(sys.argv)
qb = BoxLayout()
qb.show()
sys.exit(app.exec_())

আপনাদের কাছে উপরের কোড গুলো একটু গোলমেলে লাগতে পারে এ জন্য একটা কাজ করুন । আপনারা

vbox = QtGui.QVBoxLayout()

hbox = QtGui.QHBoxLayout()

এই দুটি কোড একটু উলটে পাল্টে দেখুন । মানে QVBoxLayout স্থানে QHBoxLayout , ও QHBoxLayout() স্থানে QVBoxLayout() দিয়ে ট্রাই করে দেখুন মূলত কী পরিবর্তন আসে । বা এইচ বক্স ভ্যারিয়েবলটাকে ভি বক্সের স্থানে ইউজ করে ও ভি বক্স কে এইচ বক্সের স্থান ইউজ করে দেখুন । তাহলে আশা করি আপনাদের আইডিয়াটা ক্লিয়ার হবে ।

আমরা মূলত এই দুটি ক্লাস ইউজ করেঠি বাটনকে হরিজন্টালি ও ভার্টিক্যালি সেট করার জন্য । সেটা আপনারা উপরের কাজ টা করলেই বুঝতে পারবেন ।

আপনারা পজিশন চেঞ্জ করে করে দেখতে পারেন । এভাবে বিভিন্ন পজিশন দিয়ে প্রাকটিস করতে থাকুন । পাইথনের বিভিন্ন সমস্যার সমাধান ও লাইভ আপডেট পেতে যুক্ত থাকুন আমাদের পাইথন বাংলা গ্রুপে ।

ADs by Techtunes tAds
Level 0

আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 6 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 82 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 14 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0
মামা আমি খুবই ব্যথিত দুঃখিত গত পোস্ট টা মানে ২৫ নাম্বার পোস্ট তা আমি পারিনি। অনেক বার ট্রাই করেও বার্থ হয়েছি...........................। কি করব বুঝতে পারছি না
    @hripon: আমিও দুঃখিত আপনার এই সমস্যাটা হবার জন্য । কিন্তু কী কারণে আপনার এই সমস্যা হচ্ছে সেটা ঠিক বুঝলাম না । আপনি যদি কোন ভবেই টেকটিউনস থেকে পড়তে না পারেন , তবে নীচের এড্রেসএ ট্রাই করতে পারেন : http://arindampal.wordpress.com/
আর না হলে ফেসবুকে আমার সাথে যোগাযোগ করুন । সমস্যাটা খুলে বলুন ।