最近在用qt+vs2008做乙個專案,涉及到乙個綜合測評表,說白了有點像問卷調查%26mdash;%26mdash;很多題目每題若干個選項。
初始時打算用下拉框,每個框中填入所有選項,但後來一琢磨這種方式不夠直觀與人性化,增添了一步使用者下拉的操作。
於是決定換用單選按鈕,在qt中叫做qradiobutton。啪啦啪啦一陣折騰,介面上前一半是題目,後一半全是一行一行的小圓孔,直接上圖:
興奮地馬上編譯、執行,一點瞬間懵了,整個介面上只有乙個按鈕同時有效。
當然,頭腦冷靜下來後就知道原因了:沒有對這些按鈕進行分組處理。
分組,首先憑直覺想到的就是利用qgroupbox,前面忘了解釋,其實qt中控制項類的名稱與使用方法和mfc類似,只是接觸久了發現前者更容易通過純**實現gui應用程式的開發。
立即對每行的四個小不點配備乙個qgroupbox,由於是水平排布,又借用了qhboxlayout控制項,可以通過其方法設定子控制項的間距等屬性。
又是啪啦啪啦一陣,編譯、執行,發現每行都存在乙個組框,顯然不夠美觀,上網查唄。
高手如雲,招式乙個接乙個,試了幾種改變qgroupbox的屬性,均以失敗告終。
最終採納了一種樸素又高大上的土方法:利用qwidget替代qgroupbox,即能勝任工作又環保無邊框。
簡單地find and replace了一下,達到目的了。下面給出上面五組的完整實現**,比較笨拙,各位朋友看了之後給點建議,希望能從**量與複雜度上改進一番!
在%26ldquo;***.h%26rdquo;中宣告所需變數,這裡只給出單選按鈕部分:
qradiobutton *jradio11;
qradiobutton *jradio12;
qradiobutton *jradio13;
qradiobutton *jradio14;
qradiobutton *jradio21;
qradiobutton *jradio22;
qradiobutton *jradio23;
qradiobutton *jradio24;
qradiobutton *jradio31;
qradiobutton *jradio32;
qradiobutton *jradio33;
qradiobutton *jradio34;
qradiobutton *jradio41;
qradiobutton *jradio42;
qradiobutton *jradio43;
qradiobutton *jradio44;
qradiobutton *jradio51;
qradiobutton *jradio52;
qradiobutton *jradio53;
qradiobutton *jradio54;
qwidget *jiaxiangg1;
qwidget *jiaxiangg2;
qwidget *jiaxiangg3;
qwidget *jiaxiangg4;
qwidget *jiaxiangg5;
qhboxlayout *jiaxiangh1;
qhboxlayout *jiaxiangh2;
qhboxlayout *jiaxiangh3;
qhboxlayout *jiaxiangh4;
qhboxlayout *jiaxiangh5;
在%26ldquo;***.cpp%26rdquo;中實現:
jradio11 = new qradiobutton(this);
jradio12 = new qradiobutton(this);
jradio13 = new qradiobutton(this);
jradio14 = new qradiobutton(this);
jradio21 = new qradiobutton(this);
jradio22 = new qradiobutton(this);
jradio23 = new qradiobutton(this);
jradio24 = new qradiobutton(this);
jradio31 = new qradiobutton(this);
jradio32 = new qradiobutton(this);
jradio33 = new qradiobutton(this);
jradio34 = new qradiobutton(this);
jradio41 = new qradiobutton(this);
jradio42 = new qradiobutton(this);
jradio43 = new qradiobutton(this);
jradio44 = new qradiobutton(this);
jradio51 = new qradiobutton(this);
jradio52 = new qradiobutton(this);
jradio53 = new qradiobutton(this);
jradio54 = new qradiobutton(this);
jiaxiangg1 = new qwidget(this);
jiaxiangg2 = new qwidget(this);
jiaxiangg3 = new qwidget(this);
jiaxiangg4 = new qwidget(this);
jiaxiangg5 = new qwidget(this);
jiaxiangh1 = new qhboxlayout(this);
jiaxiangh2 = new qhboxlayout(this);
jiaxiangh3 = new qhboxlayout(this);
jiaxiangh4 = new qhboxlayout(this);
jiaxiangh5 = new qhboxlayout(this);
jiaxiangh1-%26gt;addwidget(jradio11);
jiaxiangh1-%26gt;addwidget(jradio12);
jiaxiangh1-%26gt;addwidget(jradio13);
jiaxiangh1-%26gt;addwidget(jradio14);
jiaxiangg1-%26gt;setlayout(jiaxiangh1);
jiaxiangg1-%26gt;setgeometry(qrect(705,205,250,35));
jiaxiangh2-%26gt;addwidget(jradio21);
jiaxiangh2-%26gt;addwidget(jradio22);
jiaxiangh2-%26gt;addwidget(jradio23);
jiaxiangh2-%26gt;addwidget(jradio24);
jiaxiangg2-%26gt;setlayout(jiaxiangh2);
jiaxiangg2-%26gt;setgeometry(qrect(705,280,250,35));
jiaxiangh3-%26gt;addwidget(jradio31);
jiaxiangh3-%26gt;addwidget(jradio32);
jiaxiangh3-%26gt;addwidget(jradio33);
jiaxiangh3-%26gt;addwidget(jradio34);
jiaxiangg3-%26gt;setlayout(jiaxiangh3);
jiaxiangg3-%26gt;setgeometry(qrect(705,365,250,35));
jiaxiangh4-%26gt;addwidget(jradio41);
jiaxiangh4-%26gt;addwidget(jradio42);
jiaxiangh4-%26gt;addwidget(jradio43);
jiaxiangh4-%26gt;addwidget(jradio44);
jiaxiangg4-%26gt;setlayout(jiaxiangh4);
jiaxiangg4-%26gt;setgeometry(qrect(705,445,250,35));
jiaxiangh5-%26gt;addwidget(jradio51);
jiaxiangh5-%26gt;addwidget(jradio52);
jiaxiangh5-%26gt;addwidget(jradio53);
jiaxiangh5-%26gt;addwidget(jradio54);
jiaxiangg5-%26gt;setlayout(jiaxiangh5);
jiaxiangg5-%26gt;setgeometry(qrect(705,525,250,35));
QRadioButton分組且無邊框的簡單實現
最近在用qt vs2008做乙個專案,涉及到乙個綜合測評表,說白了有點像問卷調查 26mdash 26mdash 很多題目每題若干個選項。初始時打算用下拉框,每個框中填入所有選項,但後來一琢磨這種方式不夠直觀與人性化,增添了一步使用者下拉的操作。於是決定換用單選按鈕,在qt中叫做qradiobutt...
QRadioButton分組且無邊框的簡單實現
最近在用qt vs2008做乙個專案,涉及到乙個綜合測評表,說白了有點像問卷調查 很多題目每題若干個選項。初始時打算用下拉框,每個框中填入所有選項,但後來一琢磨這種方式不夠直觀與人性化,增添了一步使用者下拉的操作。於是決定換用單選按鈕,在qt中叫做qradiobutton。啪啦啪啦一陣折騰,介面上前...
分組合計且排序和顯示名稱
分組合計的乙個問題是,合計中最大的問題是 只能顯示groupby的字段,不能顯示其它的字段。有時還需要排序,就很麻煩。這裡有乙個實現。select a.b.zu no as zuhao,b.qu as quming,b.dui as duiming,b.zu as zuming from selec...