मैं QTabWidget
का उपयोग कर रहा हूं और मुझे वास्तव में होने से पहले वर्तमान टैब के परिवर्तन को संभालने का एक तरीका चाहिए, और कुछ शर्तों को पूरा होने पर संभावित रूप से इसे रद्द कर दें। वर्तमान टैब बदल जाने के बाद QTabWidget::currentChanged
संकेत प्राप्त हुआ है, लेकिन क्या मुझे QTabWidget::currentChanging
सिग्नल या व्यवहार की आवश्यकता के लिए एक और तरीका है?QTabWidget में वर्तमान टैब कब बदल रहा है इसकी पहचान कैसे करें?
7
A
उत्तर
3
यह मैं इसे कैसे
void MainWindow::on_tabWidget_currentChanged(int index)
{
if (lockTabs) ui->tabWidget->setCurrentIndex(lockedTab);
}
हल एक बटन पर क्लिक करने पर है, मैं सत्य पर lockTabs सेट और lockedTab (int) को मौजूदा टैब सूचकांक सहेजें। इससे कोई फर्क नहीं पड़ता कि आप जिस टैब पर क्लिक करते हैं, वह आपको लॉक टैब पर वापस फेंक देगा।
मैं पहली टिप्पणी से सहमत हूं कि टैब को अक्षम करना बेहतर तरीका है। यह अक्षम करने टैब्स के लिए मेरे समाधान है:
void MainWindow::lockTabs(int except){
for (int i=0; i<ui->tabWidget->count(); i++) {
if (i!=except) ui->tabWidget->setTabEnabled(i, false);
}
}
void MainWindow::unlockTabs() {
for (int i=0; i<ui->tabWidget->count(); i++) {
ui->tabWidget->setTabEnabled(i, true);
}
}
5
मेरे मामले में, मैं इस तरह सिग्नल और स्लॉट कनेक्ट:
void MainWindow::tabSelected(){
if(ui->tabWidget->currentIndex()==0){
// Do something here when user clicked at tab1
}
if(ui->tabWidget->currentIndex()==3){
// Do something here when user clicked at tab4
}
}
:
//check if user clicked at a tab
connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabSelected()));
और tabSelected()
समारोह में, मैं वर्तमान टैब अनुक्रमणिका जाँच
1
अपने शीर्षलेख में, घोषित करें:
QWidget *saveTab
एक नियमित tabChanged
बनाएँ currentChanged()
सिग्नल के लिए स्लॉट है। फिर:
void pkgName::tabChanged
//"ask your question"
if "bad reply"
// This is where you'll "set back to your old tab"
ui->tabWidget->setCurrentWidget(savedWidget)
end if
savedWidget = ui->tabWidget-> getCurrentWidget()
// Process
संबंधित मुद्दे
- 1. डीओएम कब बदला गया है इसकी पहचान कैसे करें?
- 2. आईफोन में सिम कब बदलता है इसकी पहचान कैसे करें?
- 3. QTabWidget टैब संदर्भ मेनू
- 4. QTabWidget
- 5. सिमफ़ोनी 2 में उपयोगकर्ता का प्रतिरूपण किया जा रहा है या नहीं, इसकी पहचान कैसे करें?
- 6. पर्ल वर्तमान पैकेज को बदल रहा है?
- 7. QTabWidget केवल एक टैब का शीर्षक फ़ॉन्ट सेट करें
- 8. .NET प्रबंधित ढेर कब और कैसे बदल रहा है?
- 9. jquery टैब के वर्तमान में सक्रिय टैब
- 10. वर्तमान टैब बनाम नए टैब
- 11. पृष्ठभूमि टैब से वर्तमान टैब आईडी कैसे प्राप्त करें
- 12. QTabWidget में दो टैब के बीच एक जगह कैसे सम्मिलित करें?
- 13. sun-jaxws.xml - इसकी आवश्यकता कब होती है और कब नहीं?
- 14. vim - वर्तमान टैब में सभी बफर कैसे बंद करें?
- 15. असेंबली फ़ाइल संस्करण नहीं बदल रहा है?
- 16. Google क्रोम एक्सटेंशन में अधिसूचना से वर्तमान टैब स्विच करें
- 17. jQuery यूआई टैब: वर्तमान टैब इंडेक्स
- 18. QSplitter QWidget और QTabWidget
- 19. वर्तमान उपयोगकर्ताओं को कैसे प्राप्त करें विंडोज पहचान
- 20. मैं कैसे बदल रहा है एनोटेशन
- 21. पिछली घटनाओं के आधार पर अगली घटना कब होती है, इसकी भविष्यवाणी कैसे करें?
- 22. QTabBar बनाम QTabWidget
- 23. जांचें कि वर्तमान टैब vim
- 24. टैब बार नियंत्रक से 'वर्तमान' नेविगेशन नियंत्रक कैसे प्राप्त करें
- 25. मैकवीम में नेता बदल रहा है?
- 26. सी में कामकाजी निर्देशिका बदल रहा है?
- 27. मैट्रिक्स में कौन से कॉलम प्रति पंक्ति "NA" नहीं हैं इसकी पहचान कैसे करें?
- 28. आयाम, केवल चौड़ाई/ऊंचाई बदल रहा है
- 29. क्यूटी बढ़ाएं QTabWidget के QTabBar आकार
- 30. stdafx.h: मुझे इसकी आवश्यकता कब होगी?
मुझे विश्वास नहीं है कि ऐसा हुक है ... आपको मैन्युअल रूप से वापस फ़्लिप करना होगा। लेकिन यह एक बहुत अच्छी यूजर इंटरफेस पसंद की तरह नहीं लगता है। वैध टैब देखने वाले टैब पर क्लिक को "अस्वीकार करने" की कोशिश करने के बजाय आप टैब की सक्षमता स्थिति को अपनी उपलब्धता को क्यों नहीं दिखाएंगे? http://doc.qt.nokia.com/latest/qtabwidget.html#setTabEnabled – HostileFork
क्या QTabWidget को उपclass करना संभव होगा? मैंने इस मामले पर कोई शोध नहीं किया है; यह सिर्फ एक विचार है। –
हमारे पास वास्तव में यह समस्या थी और आखिरकार स्क्रैच से एक कस्टम टैबविड्ज लिखना चुना जिसने एक परिवर्तन के बारे में संकेत दिया और वस्तुओं को प्रस्तावित परिवर्तनों को वीटो करने की इजाजत दी। यह कहकर कि मैंने @ होस्टाइलफ़ोर द्वारा प्रस्तावित विधि का उपयोग करना चुना होगा यदि वह एक विकल्प था। – sjwarner