• 13091阅读
  • 12回复

关于radiobutton [复制链接]

上一主题 下一主题
离线laiobot
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-26
我想在两个radiobutton之间有一个2选一个的关系,本想把2个radiobutton添加到一个widget或者group下,但是发现添加后radio不在能够使用了,请高手指教我该怎么办
离线dbzhang800

只看该作者 1楼 发表于: 2009-11-26
使用
QButtonGroup
离线laiobot
只看该作者 2楼 发表于: 2009-11-26
在GUI界面下我没有发现这个QButtonGroup
离线dbzhang800

只看该作者 3楼 发表于: 2009-11-26
引用第2楼laiobot于2009-11-26 20:48发表的  :
在GUI界面下我没有发现这个QButtonGroup


在代码中写
离线laiobot
只看该作者 4楼 发表于: 2009-11-26
那我如果是在GUI下,怎么才能达到同样的效果呢
离线dbzhang800

只看该作者 5楼 发表于: 2009-11-26
引用第4楼laiobot于2009-11-26 21:01发表的  :
那我如果是在GUI下,怎么才能达到同样的效果呢


写代码,和你用 designer 设计界面不矛盾。

你这个窗口除了 ****.ui 外 肯定有一个对应的 ****.cpp ****.h吧
离线wd007

只看该作者 6楼 发表于: 2009-11-26
使用手写代码可以的,在Qt Designer中目前没有提供这个窗口部件。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线laiobot
只看该作者 7楼 发表于: 2009-11-26
我的理解是,以为直接编写.CPP和.H文件是做QT的一种思路,而另一种思路就是在GUI环境下画图,设置signal/SLOT,TAB order ,buddy等等,然后通过UIC自动生成.H和.CPP,自己再根据生成的.H和.CPP进行修改,不知这样理解是否合理?
其实我也有一个大问号一直没有解决,就是通过UIC生成的.H和.CPP到底还差哪些内容需要添加进去,或者说还有什么不足之处?

另,buddy的用处是什么不是很明确,麻烦解释一下
离线dbzhang800

只看该作者 8楼 发表于: 2009-11-26
引用第7楼laiobot于2009-11-26 21:13发表的  :
我的理解是,以为直接编写.CPP和.H文件是做QT的一种思路,而另一种思路就是在GUI环境下画图,设置signal/SLOT,TAB order ,buddy等等,然后通过UIC自动生成.H和.CPP,自己再根据生成的.H和.CPP进行修改,不知这样理解是否合理?
其实我也有一个大问号一直没有解决,就是通过UIC生成的.H和.CPP到底还差哪些内容需要添加进去,或者说还有什么不足之处?


你提到是使用 ui文件的一种方法,但似乎很不被推荐。

在Qt 的manual中提到了3种使用ui 文件的方法(没有你说的这种,这三种都不会去修改uic生成类)
Using a Designer UI File in Your Application

其中 单继承 方式可能是最常用了(至少Qt creator默认就是这种)

引用第7楼laiobot于2009-11-26 21:13发表的  :
另,buddy的用处是什么不是很明确,麻烦解释一下
离线laiobot
只看该作者 9楼 发表于: 2009-11-26
引用第8楼dbzhang800于2009-11-26 21:27发表的  :



那我应该走哪条正路学习QT呢?既然GUI环境是不被推荐的 ,那是不是只有看例子仿写这一条路可以选择了?
离线dbzhang800

只看该作者 10楼 发表于: 2009-11-26
引用第9楼laiobot于2009-11-26 21:31发表的  :
那我应该走哪条正路学习QT呢?既然GUI环境是不被推荐的 ,那是不是只有看例子仿写这一条路可以选择了?

我声明:我可没说GUI环境是不被推荐的,我只是说你描述的哪种使用ui文件的方式是不好的,至于怎么使用 designer生成 ui文件,manual中已经给出了3中方法。

qt creator是个很不错东西,再就是看手册、看demo
离线wd007

只看该作者 11楼 发表于: 2009-11-26
在实际的工程实践中,使用最多的方法是将手写代码与使用Qt Designer结合起来,如果是多人合作的项目,则使用IDE的时候更多。手写代码几乎无所不能,而仅仅使用Qt Designer是有很大的局限性的。

buddy是专为QLabel设立的,在常见的网络程序上尤为有用,一个QLabel对象有一个对应的buddy(伙伴),当你按下为QLabel对象设置的快捷键时,键盘焦点将立刻转到其对应的buddy上,也就是输入框上面,这就增加了便捷性。

以下是Qt Assistant中的内容,我想不必翻成汉语了,英语更清楚。

Sets this label's buddy to buddy.

When the user presses the shortcut key indicated by this label, the keyboard focus is transferred to the label's buddy widget.

The buddy mechanism is only available for QLabels that contain text in which one character is prefixed with an ampersand, '&'. This character is set as the shortcut key. See the QKeySequence::mnemonic() documentation for details (to display an actual ampersand, use '&&').

In a dialog, you might create two data entry widgets and a label for each, and set up the geometry layout so each label is just to the left of its data entry widget (its "buddy"), for example:

QLineEdit *nameEd  = new QLineEdit(this);
QLabel    *nameLb  = new QLabel("&Name:", this);
nameLb->setBuddy(nameEd);
QLineEdit *phoneEd = new QLineEdit(this);
QLabel    *phoneLb = new QLabel("&Phone:", this);
phoneLb->setBuddy(phoneEd);
// (layout setup not shown)
With the code above, the focus jumps to the Name field when the user presses Alt+N, and to the Phone field when the user presses Alt+P.

To unset a previously set buddy, call this function with buddy set to 0.
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线azhw
只看该作者 12楼 发表于: 2010-06-07
qt designer 中,
选中需要成组的几个 Radio button,
点击右键,
assign to  button group --> new  button group

搞定!
快速回复
限100 字节
 
上一个 下一个