我在Qt中编写了一个向导式应用程序,它使用QStackedWidget来组织向导的各个页面.现在我想在页面之间切换,这应该是可以使用的功能setCurrentWidget(...):
我有一个简单的主类来实例化QWidget audioconfig.然后,它将此QWidget添加到QStackedWidget pageStack使用pageStack.addWidget(&audioconfig);.
后来,我想将来自不同QWidget的特定信号连接hub到setCurrentWidget(...)QStackedWidget,以便切换页面.但是,我的编译器评论说
0Object :: connect:/Users/paperflyer/Development/App/main.cpp中没有这样的插槽QStackedWidget :: setCurrentWidget(audioconfig):41`
我有两件事没有到达:
这是整个代码:
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QStackedWidget pageStack;
CHub hub; // inherits from CWidget
CAudioConfig audioconfig; // ditto
pageStack.addWidget(&hub);
pageStack.addWidget(&audioconfig);
// connect() is a custom signal of hub
QObject::connect(&hub, SIGNAL(configure()), &pageStack, SLOT(setCurrentWidget(&audioconfig)));
pageStack.setGeometry(100,100,700,500);
pageStack.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
一如既往,非常感谢你的帮助!
有许多技术和工具可用于构建应用程序的前端.
哪个是最好的技术/工具/平台,我可以使用它来构建更好的GUI,通过它我可以构建一个漂亮的外观以及一个高效的GUI?
"更好"的定义包括诸如效率,用户友好性,更好的内容控制机制,导航等因素.
我有16个按钮名为button1,button2 ......等迭代它们的最佳方法是什么?如何将这些按钮存储在(在数组或其他东西中)?我想做类似下面的事情:
public void func(string[] a)
{
for(int i = 0; i<16;i++)
{
if(a[i]==something)
button[i].image = someImage;
else
button[i].image = antoherImage;
}
}
Run Code Online (Sandbox Code Playgroud) 嗨,我今天刚开始使用C++,我正在研究复选框.我尝试过使用CheckBox1->Checkedif语句或其他什么,但它不起作用.
错误是:
错误2错误C2227:' - > Checked'的左侧必须指向class/struct/union/generic类型
编辑:守则是:
void function ()
{
if (1001->Checked)
{
Sleep(2000);
}
}
Run Code Online (Sandbox Code Playgroud) Iam通过使用window.open()弹出新窗口,但需要当我在Mozilla浏览器中单击按钮时,应在Internet Explorer中打开一个新的弹出窗口,是否可能......
我用GUI制作了一个java程序.现在我想在GUI上添加一个组件,我可以以与显示输出相同的方式显示我想要的任何内容
System.out.println();
Run Code Online (Sandbox Code Playgroud)
我可以在GUI上添加哪个组件以及如何在该组件上显示内容.
我已经开始在Objective-C上使用Mac OS X进行编程,并决定创建一个小卡片游戏.首先,我创建一个命令行版本.如果一切正常我想实现一个GUI:没什么大的,只是一个带有可以拖放的卡片的绿色窗口.
由于我不知道如何做到这一点:我可以用什么来实现我的纸牌游戏GUI?
由于Objective-C和Cocoa在Mac OS X上看起来像一个"捆绑",是否可以使用Cocoa(以及如何)?如果没有,我还应该使用什么,或者已经存在...... 像这样?
问候,
INNO
我刚开始用Qt.尽管今天晚上花了一些时间,但我仍在努力将我的UI设置代码移出main它自己的类.
#include <QtGui>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget *window = new QWidget;
QLabel *hw = new QLabel(QObject::tr("Hello World!"));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(hw);
window->setLayout(layout);
window->show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试创建自己的类并传递window给它但遇到编译错误.
main.cpp中:
#include <QtGui>
#include "hworld.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QDialog *hWorld = new hWorld;
hWorld->show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
hworld.h:
#ifndef HWORLD_H
#define HWORLD_H
#include <QtGui>
class hWorld : public QDialog {
Q_OBJECT
public:
hWorld(QWidget *parent = …Run Code Online (Sandbox Code Playgroud) 我刚刚开始编写GUI程序,这是我的第二个.对于这两个项目(两个家庭作业),我遇到了同样的问题.在我调整窗口大小或将键盘焦点移动到它们之前,GUI对象(例如JTextField)不会在应用程序运行时显示.如果我不做这两件事之一,那么我将只有一个空的应用程序窗口.
任何想法为什么会发生这种情况以及我能做些什么来解决它?我正在使用Mac OS 10.6.1.
我的代码如下.请随意评论我的编码风格,但请关注我遇到的问题.
import javax.swing.*;
import java.awt.*;
public class ToDo extends JFrame {
private int height = 30,
width = 300;
public ToDo() {
this.setSize(400,400);
this.setVisible(true);
this.setLayout(null);
this.setResizable(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("To Do List");
JTextField todoItem[] = new JTextField [10];
Container contentpane = this.getContentPane();
contentpane.setLayout(null);
for(int i=0; i<10; i++) {
todoItem[i] = new JTextField();
todoItem[i].setBounds(10,(height*(i)+10),width,height);
contentpane.add(todoItem[i]);
}
}
public static void main(String[] args) {
new ToDo();
}
}
Run Code Online (Sandbox Code Playgroud)