क्या जीटीकेबॉक्स के अंदर दो विजेट्स के बीच सभी मार्जिन को हटाना संभव है?

कोशिश की गई: सब कुछ शून्य पर सेट करें

परिणाम: अभी भी 2px प्रभावी मार्जिन

GTK+ संस्करण: 3.18.9

विजेट गुण:

Widget properties 1

Widget properties 2

आरेखण कोड:

auto w_out=static_cast<double>( gtk_widget_get_allocated_width(widget) );
auto h_out=static_cast<double>( gtk_widget_get_allocated_height(widget) );

cairo_set_source_rgba(cr,self->m_background.red,self->m_background.green
    ,self->m_background.blue,self->m_background.alpha);
cairo_rectangle(cr,0,0,w_out,h_out);
cairo_fill(cr);

auto img=self->r_img;
if(img!=nullptr)
    {
    //...
    }

उम्मीद के मुताबिक वास्तविक आकार 22 x 22 है।

रेंडर किया गया परिणाम:

Result

ऐसा प्रतीत होता है कि यह एक विषयगत मुद्दा नहीं है, क्योंकि सभी विषय समान व्यवहार करते हैं।

0
user877329 5 जुलाई 2017, 11:57

2 जवाब

सबसे बढ़िया उत्तर

मुझे समाधान मिला। मेरे पास GtkBox के लिए एक गैर-शून्य रिक्ति थी।

0
user877329 5 जुलाई 2017, 14:47

मैंने उसी जीटीके संस्करण पर कोशिश की है:

$ rpm -q gtk3-devel
gtk3-devel-3.18.9-1.fc23.x86_64

और इसने बिना किसी सीमा के काम किया जैसा कि देखा जा सकता है:

Screenshot

केंद्र के रूप में सेट क्षैतिज संरेखण के कारण छवियां केंद्रित हैं। विंडो को सबसे छोटे आकार में बदलना:

Screenshot

उपयोग की गई छवि मूल (22x22 px) से एक क्रॉप थी:

Screenshot

निष्कर्ष

ऐसा लगता है कि आप एक कस्टम विजेट बना रहे हैं, शायद कुछ ऐसा है जो आपको याद आ रहा है (अधिक विवरण की आवश्यकता है)। नियमित विगेट्स से (जीटीकेबॉक्स पर पैक जीटीके इमेज, ग्लेड के साथ परीक्षण किया गया) ऐसा लगता है कि यह ठीक काम करता है।

0
José Fonte 5 जुलाई 2017, 14:34