मैं अपने आवेदन में से एक में क्यूटी संवाद का उपयोग कर रहा हूं। मुझे सहायता बटन को छिपाने/हटाने की आवश्यकता है। लेकिन मैं यह पता लगाने में सक्षम नहीं हूं कि मैं वास्तव में अपने सहायता बटन पर हैंडल कहां प्राप्त करता हूं। सुनिश्चित नहीं है कि यह क्यूटी विंडो पर एक विशेष ध्वज है।मैं "?" को कैसे छुपा/हटा सकता हूं एक क्यूटी संवाद के "शीर्षक पट्टी" पर मदद बटन?
उत्तर
डिफ़ॉल्ट रूप से Qt :: WindowContextHelpButtonHint ध्वज संवाद में जोड़ा जाता है। आप संवाद नियंत्रक को विंडोफ्लैग पैरामीटर के साथ इसे नियंत्रित कर सकते हैं।
उदाहरण के लिए आप ऐसा करके केवल TitleHint और SystemMenu झंडे निर्दिष्ट कर सकते हैं:
QDialog *d = new QDialog(0, Qt::WindowSystemMenuHint | Qt::WindowTitleHint);
d->exec();
आप क्यूटी :: WindowContextHelpButtonHint झंडा आप मदद बटन वापस मिल जाएगा जोड़ें।
PyQt में आप कर सकते हैं: खिड़की झंडे पर
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication([])
d = QtGui.QDialog(None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
d.exec_()
अधिक जानकारी क्यूटी दस्तावेज में WindowType enum पर पाया जा सकता।
ठीक है, मुझे ऐसा करने का एक तरीका मिला।
यह विंडो झंडे से निपटता है। तो यहां मैंने जो कोड इस्तेमाल किया है:
Qt::WindowFlags flags = windowFlags()
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
लेकिन ऐसा करने से कभी-कभी संवाद का आइकन रीसेट हो जाता है। तो यह सुनिश्चित करने के लिए कि संवाद का आइकन नहीं बदलता है, आप दो पंक्तियां जोड़ सकते हैं।
QIcon icon = windowIcon();
Qt::WindowFlags flags = windowFlags();
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
setWindowIcon(icon);
छोटा संस्करण: 'सेटविंडोफ्लैग्स (विंडोफ्लैग्स() और ~ क्यूटी :: विंडोकॉन्टेक्स्ट हेल्प बटनटन); ' –
@ थोरबोजर्न लिंडेज़र: आपको इसे एक उत्तर के रूप में जोड़ना चाहिए। – Hossein
जवाब यहाँ सूचीबद्ध काम करेंगे, लेकिन यह अपने आप को जवाब देने के लिए, मैं तुम्हें उदाहरण कार्यक्रम $QTDIR/examples/widgets/windowflags
चलाने की सलाह देते हैं। इससे आपको विंडो झंडे और उनके प्रभावों की सभी कॉन्फ़िगरेशन का परीक्षण करने की अनुमति मिल जाएगी। गिलहरी खिड़की की समस्याओं को समझने के लिए बहुत उपयोगी है।
मुझे स्लॉट नहीं मिला लेकिन आप वर्चुअल winEvent
फ़ंक्शन को ओवरराइड कर सकते हैं।
#if defined(Q_WS_WIN)
bool MyWizard::winEvent(MSG * msg, long * result)
{
switch (msg->message)
{
case WM_NCLBUTTONDOWN:
if (msg->wParam == HTHELP)
{
}
break;
default:
break;
}
return QWizard::winEvent(msg, result);
}
#endif
मैं विंडोज 7, क्यूटी 5.2 में इस मुद्दे में भाग गया, और झंडे संयोजन है कि मेरे लिए सबसे अच्छा काम किया यह था:
क्यूटी :: WindowTitleHint | क्यूटी :: WindowCloseButtonHint
यह मुझे एक काम करने वाला बंद बटन देता है लेकिन कोई प्रश्न चिह्न सहायता बटन नहीं देता है। केवल Qt :: WindowTitleHint या Qt :: WindowSystemMenuHint का उपयोग करके मदद बटन से छुटकारा पा लिया, लेकिन यह बंद बटन को भी अक्षम कर दिया।
जैसा कि माइकल बिशप ने सुझाव दिया था, यह विंडोफ्लैग उदाहरण के साथ खेल रहा था जिसने मुझे इस संयोजन के लिए प्रेरित किया। धन्यवाद!
यह सही जवाब है। उपर्युक्त उत्तर बंद बटन को अक्षम करते हैं, जो डिफ़ॉल्ट रूप से अक्षम नहीं है। – Dan
// remove question mark from the title bar
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
आवेदन में सभी संवाद के लिए डिफ़ॉल्ट रूप से सवाल के निशान को दूर करने के लिए निम्न तरह से इस्तेमाल किया जा सकता:
bool eventFilter (QObject *watched, QEvent *event) override
{
if (event->type() == QEvent::Create)
{
if (watched->isWidgetType())
{
auto w = static_cast<QWidget *> (watched);
w->setWindowFlags (w->windowFlags() & (~Qt::WindowContextHelpButtonHint));
}
}
return QObject::eventFilter (watched, event);
}
:
अपने कार्यक्रम के शुरू में कहीं QApplication
को निम्न इवेंट फिल्टर संलग्न
- 1. मैं WPF में विंडो की सीमा और शीर्षक पट्टी को कैसे शैलीबद्ध कर सकता हूं?
- 2. विंडो के शीर्षक पट्टी में अतिरिक्त बटन कैसे जोड़ें?
- 3. विंडो शीर्षक पट्टी
- 4. क्यूटी आवेदन शीर्षक
- 5. मैं गतिविधि के शीर्षक पट्टी में स्पिनर कैसे जोड़ूं?
- 6. एंड्रॉइड एप्लिकेशन के शीर्षक पट्टी को हटाकर
- 7. मैं ब्राउज़र के प्रमाणीकरण संवाद को कैसे दबा सकता हूं?
- 8. FormBorderStyle.FixedToolWindow की एक विंडो को अधिकतम करने से मैं विंडो शीर्षक पट्टी के डबल क्लिक को कैसे रोक सकता हूं?
- 9. मैं क्यूटी के साथ सबप्रोजेक्ट कैसे बना सकता हूं?
- 10. शीर्षक-पट्टी के संदर्भ मेनू
- 11. विंडो के शीर्षक पट्टी पर कोई प्रतिक्रिया संदेश कैसे रोकें?
- 12. बटन पर jquery संवाद
- 13. मैं "संवाद के साथ" फ़ाइल संवाद कैसे दिखा सकता हूं?
- 14. शीर्षक पट्टी छवि पर क्लिक श्रोता
- 15. QT4 खींचें विंडो शीर्षक पट्टी
- 16. मैं क्यूएमएल बटन पर प्रतिक्रिया कैसे कर सकता हूं सी ++
- 17. मैं अपने डॉक्यूविकी के शीर्षक पर अपना लोगो कैसे प्रदर्शित कर सकता हूं?
- 18. क्यूटी डिजाइनर में बटन बॉक्स के भीतर बटन के गुणों को मैं कैसे बदलूं?
- 19. मैं गुब्बारे टूलटिप पर "रिंच" बटन कैसे हटा सकता हूं?
- 20. कोको में मोटी शीर्षक पट्टी खिड़की, आईट्यून्स
- 21. UINavigationBar बैक बटन के शीर्षक को "बैक"
- 22. आईफोन मुख्य विंडो में शीर्षक पट्टी को कैसे छिपाना है
- 23. कैसे एक चेतावनी संवाद को रोकने के लिए बैक बटन
- 24. jQueryUI के संवाद बंद करें बटन
- 25. एंड्रॉइड: विंडो के शीर्षक में प्रगति पट्टी
- 26. मैं UIButton शीर्षक रंग कैसे बदल सकता हूं?
- 27. मैं ExpandableListView के बटन को कैसे हटा सकता हूं?
- 28. मैं कैसे सेट कर सकता हूं कि एक क्यूटी ऐप को क्यूटी मॉड्यूल कहां मिलता है?
- 29. मैं क्यूटी में एक छवि कैसे फसल कर सकता हूं?
- 30. मैं बटन के प्रेस को अनुकरण कैसे कर सकता हूं?
नीचे र्रविक का जवाब देखें। यदि आप अपने झंडे में Qt :: WindowCloseButtonHint नहीं जोड़ते हैं, तो आप बंद बटन को अक्षम कर देंगे, जो डिफ़ॉल्ट रूप से सक्षम है। – Dan
यहां एक लिंक है जो पीईक्यूटी 4 में विंडो फ्लैग निर्दिष्ट करता है, http://pyqt.sourceforge.net/Docs/PyQt4/qt.html#WindowType-enum – Barmaley
अगर आप बंद बटन चाहते हैं तो ध्वज 'Qt :: WindowCloseButtonHint' भी जोड़ें सक्रिय हो –