GtkEntry
के चारों ओर एक अच्छा गोल-कोने वाला फ्रेम होता है, जब वह केंद्रित होता है। मैं अपने स्वयं के विजेट (GtkDrawArea
के शीर्ष पर निर्मित) के चारों ओर इस तरह के फ्रेम को आकर्षित करने के लिए जीटीके कैसे प्राप्त करूं?
मैंने GtkContainer
के सभी वंशजों के माध्यम से स्किम किया लेकिन कुछ भी ऐसा नहीं करता है। GtkFrame
है लेकिन इसका एक और उद्देश्य है और यह अलग दिखता है।
2 जवाब
अपने GtkDrawingArea के draw
सिग्नल में, का इस्तेमाल करें gtk_render_focus()
फोकस फ्रेम को उपयुक्त स्थान पर ड्रा करने के लिए।
पहले GTK3 का दस्तावेज़ीकरण पढ़ें। इसका सोर्स कोड डाउनलोड करें और प्रेरणा के लिए इसका अध्ययन करें।
GtkWidget
एब्स्ट्रैक्ट सुपरक्लास में कुछ “फोकस-इन-इवेंट” GTK सिग्नल और कुछ “फोकस-आउट-इवेंट” सिग्नल और कुछ < a href="https://developer.gnome.org/gtk3/stable/GtkWidget.html#GtkWidget-draw" rel="nofollow noreferrer">“ड्रा” GTK सिग्नल; आप उन्हें स्पष्ट रूप से संभाल सकते हैं।
आपके ड्राइंग रूटीन GDK लाइब्रेरी का उपयोग करेंगे। आपका अपना विजेट GtkWidget
या GtkBin
का उपवर्ग हो सकता है
ध्यान दें कि GTK खुला स्रोत है,
इसलिए आप अध्ययन (प्रेरणा के लिए) gtk/gtkentry.c
.
आपके GTK सिग्नल हैंडलर संभवतः g_idle_add
जीटीके ईवेंट लूप में कुछ भी चलाने की आवश्यकता नहीं होने पर ड्रॉइंग को स्थगित करने के लिए.
अगर आप GCC के साथ संकलित करते हैं, तो सभी चेतावनियों और डीबग जानकारी को सक्षम करना सुनिश्चित करें, इसलिए gcc -Wall -Wextra -g
का उपयोग करें (और शायद -O
)। आपको बहुतों को GDB डीबगर का उपयोग करने की आवश्यकता है।
नए सवाल
gtk
जीटीके (पूर्व में जीटीके +) क्रॉस प्लेटफॉर्म संगतता और एपीआई का उपयोग करने में आसान के साथ ग्राफिकल यूजर इंटरफेस (जीयूआई) बनाने के लिए एक टूलकिट है।