gpt4 book ai didi

java - 连接 QPushButton Jambi

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:08 28 4
gpt4 key购买 nike

我是 Java 编程的新手。我编写了下面列出的应用程序,但无法将按钮连接到我的功能。知道我做错了什么吗?

package com.teat;
import com.trolltech.qt.gui.*;

public class Application
{

public static void main(String[] args)
{
QApplication.initialize(args);
QWidget mainWidget = new QWidget();
mainWidget.setWindowTitle("Simple Example");
QHBoxLayout main_layout = new QHBoxLayout();
mainWidget.setLayout(main_layout);

QPushButton new_action = new QPushButton("Working");
new_action.released.connect("Tata()");
main_layout.addWidget(new_action);

SumNum(5,3);
mainWidget.show();
QApplication.execStatic();
QApplication.shutdown();
}

private static int SumNum(int num1,int num2)
{
int sum = num1 + num2;
System.out.println(sum);
return sum;

}
private static void Tata(){
System.out.println("Yes, it's Working");
}

}

当我调用像 SumNum(5,3); 这样的函数时,它工作得很好,但是当我从按钮调用它时,它不起作用。我正在使用 new_action.released.connect("Tata()");

我研究了 Qt,它给了我
void com.trolltech.qt.QSignalEmitter.AbstractSignal.connect(Object receiver, String method) 但什么是对象接收器?

我什至将自己作为对象接收者,new_action.released.connect(new_action,"Tata()"); 但是,不,它也不起作用。

有什么想法吗?

编辑:这里是 python 中的相同应用程序:

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

def __init__(self):
super(Example, self).__init__()
self.setWindowTitle('Simple Example')

main_layout = QtGui.QHBoxLayout()
self.setLayout(main_layout)

new_action = QtGui.QPushButton("Working")
new_action.released.connect(self.Tata)
main_layout.addWidget(new_action)

self.show()

def SumNum(self, num1, num2):
print num1+num2
return num1+num2

def Tata(self):
print "Yes, it's Working"


def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())


if __name__ == '__main__':
main()

在 Python 中它不要求对象接收器,它只是运行它,但在 java 中它似乎完全不同。

最佳答案

正如Smar所说,它需要循环运行,所以我从QWidget扩展,在Application()中初始化设置,在中设置布局>initUI() 并在 main() 中运行它。

import com.trolltech.qt.core.*;
import com.trolltech.qt.gui.*;

public class Application extends QWidget {

public Application() {

setWindowTitle("Simple Example");
setMinimumHeight(100);
setMinimumWidth(100);
setGeometry(250, 250, 350, 100);

initUI();

show();
}

private void initUI() {

QHBoxLayout main_layout = new QHBoxLayout(this);

QPushButton new_action = new QPushButton("Working");
new_action.released.connect(this,"Tata()");
main_layout.addWidget(new_action);

}

private void Tata(){
System.out.println("Yes, it's Working");
}

public static void main(String[] args) {
QApplication.initialize(args);
new Application();
QApplication.execStatic();
QApplication.shutdown();
}
}

因为我从QWidget扩展,所以我只需要像这样设置布局QHBoxLayout main_layout = new QHBoxLayout(this); 注意this
以及连接按钮 new_action.released.connect(this,"Tata()"); 对象接收器是这个或换句话说当前 QWidget

和Python完全一样,只是python使用self,Java使用this

这对我有用,希望对遇到同样的问题有所帮助。

关于java - 连接 QPushButton Jambi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com