2010-04-19 9 views
5

मैं कोई फायदा नहीं हुआ ऑनलाइन खोज रहा हूं। क्या कोई जानता है कि बटन बॉक्स में बटन को कैसे एक्सेस किया जाए ("बटन राइट के साथ संवाद" टेम्पलेट का उपयोग करके बनाया गया है)?क्यूटी डिजाइनर में बटन बॉक्स के भीतर बटन के गुणों को मैं कैसे बदलूं?

उत्तर

6

डिज़ाइनर में, OK या Cancel बटन का चयन करें। फिर संपत्ति संपादक खोलें और QDialogButtonBox अनुभाग पर नीचे स्क्रॉल करें। इसके बाद आप उपलब्ध विभिन्न बटन देखने के लिए standardButtons आइटम का विस्तार कर सकते हैं। अन्य गुण, जैसे कि centerButtons संपत्ति, भी उपलब्ध हैं।

हालांकि, डिजाइनर आपको बटन बॉक्स पर बहुत कम नियंत्रण देता है।

कोड में, आप कई अन्य चीजें कर सकते हैं, जैसे "मानक बटन" पर दिखाई देने वाले पाठ को बदलना। documentation से:

findButton = new QPushButton(tr("&Find")); 
findButton->setDefault(true); 

moreButton = new QPushButton(tr("&More")); 
moreButton->setCheckable(true); 
moreButton->setAutoDefault(false); 

buttonBox = new QDialogButtonBox(Qt::Vertical); 
buttonBox->addButton(findButton, QDialogButtonBox::ActionRole); 
buttonBox->addButton(moreButton, QDialogButtonBox::ActionRole); 

जब तक आप बटन बॉक्स डिजाइनर में एक नाम दे, तो आप कोड में इन गुणों को सेट कर सकते हैं।

+0

मैं फार्म के लिए कोड अनुमान लगा रहा हूँ उत्पन्न होता है और कुछ फाइल में संग्रहीत है, इसलिए मैं उस फ़ाइल में जा सकता हूं और बटन गुणों को बदल सकता हूं जिन्हें मुझे चाहिए? –

+1

जेनरेट की गई फ़ाइल को संपादित न करें। [क्यूटी डिजाइनर के लिए घटक बनाना और उपयोग करना] (http://doc.trolltech.com/4.6/qtdesigner-components.html) पृष्ठ पर प्रलेखित जेनरेट कोड के साथ काम करने के विभिन्न तरीके हैं। –

+0

@ KalebPederson यदि मैं ठीक/रद्द करें बटन बॉक्स जोड़ता हूं, तो आंतरिक बटन क्लिक नहीं किए जा सकते हैं। –

1

मैं पाइथन समुदाय के लिए यह उत्तर लिख रहा हूं। मैं पायसाइड का उपयोग कर रहा हूं और इसी तरह की समस्या का सामना कर रहा हूं। मेरे पास QDialogButtonBox है और मैं डिफ़ॉल्ट वाले के बजाय अपने स्वयं के बटन रखना चाहता हूं।

मैं पीईसाइड का उपयोग कर रहा हूं जो सी ++ कोड की सटीक प्रतिकृति है या नहीं, इसलिए मेरा मानना ​​है कि अन्य सी ++ डेवलपर्स इससे कुछ भी प्राप्त कर सकते हैं।

यहाँ मैं यह कैसे कर होगा:

 my_ok_button = QtGui.QPushButton("My Ok Button") 
     my_cancel_button = QtGui.QPushButton("My Cancel Button") 
     ok_cancel_button = QtGui.QDialogButtonBox(QtCore.Qt.Horizontal) 
     ok_cancel_button.addButton(my_ok_button, QtGui.QDialogButtonBox.ButtonRole.AcceptRole) 
     ok_cancel_button.addButton(my_cancel_button, QtGui.QDialogButtonBox.ButtonRole.RejectRole) 

मैं तो ususal की तरह मेरे लेआउट करने के लिए अपने बटन बॉक्स सम्मिलित होगा:

layout.addWidget(ok_cancel_button, 1, 1) 

अब बाद में मेरे कोड में मैं अपने बटन के साथ कुछ भी कर सकते । जैसा कि इसके नाम बदलने देती है:

  • आप बटन की भूमिका addButton में (विधि सेट करना होगा) आपको दिया कार्यक्षमताओं का उपयोग करना चाहते यदि:

    my_ok_button.setText("Some Other Name") 
    

    तो फिर चीज़ें यहाँ ध्यान दें कि है मानक बटन से। जैसे यदि आप
    नीचे जैसा कुछ करना चाहते हैं, तो आपको बटन भूमिका सेट करने की आवश्यकता है।

    ok_cancel_button.accepted.connect (self.ok_method_handler) ok_cancel_button.rejected.connect (self.close)

More information can be found here.

संबंधित मुद्दे