我对 Qt Creator 非常陌生,并且有一个关于按钮文本更新没有在我期望的时间发生的原因的问题。下面是显示按钮事件的代码片段。该按钮启动另一个外部进程 (AVRDUDE),该进程依次读取通过 USB 连接的 Arduino 板的 EEPROM 的内容。然后数据被处理并显示在 UI 中。由于读取 EEPROM 的过程需要几秒钟才能执行,因此我想将调用此例程的 UI 按钮从“READ FROM EEPROM”更改为“READING !!” 在执行该例程期间。例程完成后,将按钮标签返回到“READ FROM EEPROM”。这是代码
void MainWindow::on_READ_FROM_EEPROM_clicked() // Read EEPROM into file "fromEEPROM.bin", then output values to UI
{
ui->READ_FROM_EEPROM->setText("READING !!");
call_AVRDUDE_read();
int mBufferLength = 1024; // AVR 1K EEPROM space in 328p
char mBuffer[mBufferLength];
float fB[mBufferLength/4];
QString filename = "fromEEPROM.bin";
QFile mFile(filename);
ui->fileCurrentlyDisplayed->setText(filename); // make this filename visable in UI
if (mFile.exists())
{
if (mFile.open(QFile::ReadOnly))
while (!mFile.atEnd())
mFile.read(mBuffer,sizeof(mBuffer));
mFile.close();
memcpy(&fB, &mBuffer, …Run Code Online (Sandbox Code Playgroud) 我正在使用答案CustomButton中的自定义切换按钮。正如您在构造函数中看到的,单击侦听器将设置为按钮和对象本身。在主控制器中类中,我创建了它的一个实例并设置了一个鼠标单击事件侦听器,以便根据其状态更新 UI,但这导致了一种奇怪的行为,在某些单击时,按钮会切换并更改颜色,有时用户界面将更新...
这就是我在MainController中创建和添加点击侦听器的方式:
filterSwitchButton = new SwitchButton();
filterSwitchButton.setId("filterSwitchButton");
HBox.setMargin(filterSwitchButton, new Insets(0, 20, 0, 50));
filterSwitchButton.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// update UI
}
});
Run Code Online (Sandbox Code Playgroud)
如何更新 UI 并更改单击切换按钮时的状态?
我对本机和 JavaScript 的反应还很陌生,我必须用四个类别制作这种类型的进度条。
任何人都可以帮助或建议我如何在两个平台上的 android 和 iOS 上以 React Native 实现此 UI?
但是,我不需要用户交互或进度动画,我只需以百分比形式显示修复进度。
我目前正在尝试使用 Tkinter 包使用 Python 来学习制作简单的 GUI。
我为待办事项列表编写了这个程序:
import tkinter
import tkinter.messagebox
import pickle
root = tkinter.Tk()
root.title = ("To Do List")
def add_task():
task = entry_task.get()
if task not in ["", "Do nothing"]:
listbox_tasks.insert(tkinter.END, task)
entry_task.delete(0, tkinter.END)
else:
tkinter.messagebox.showwarning(title="Warning!", message="Doing nothing is not an option!.")
def delete_task():
try:
task_index = listbox_tasks.curselection()[0]
listbox_tasks.delete(task_index)
except:
tkinter.messagebox.showwarning(title="Warning!", message="You need to select a task to delete.")
def load_tasks():
try:
tasks = pickle.load(open("Aufgaben.txt", "rb")) # reading binary
listbox_tasks.delete(0, tkinter.END)
for task in tasks:
listbox_tasks.insert(tkinter.END, task) …Run Code Online (Sandbox Code Playgroud) 我想将文本字段添加a01, a02, ...到数组中a.我想显示值,val以便我知道文本是从文本字段中获取的.此代码不显示任何错误,但是,它也不会给我输出.
int i, j;
JTextField[][] a = new JTextField[9][9];
int[][] val = new int[9][9];
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9; j++)
{
val[i][j] = Integer.parseInt(a[i][j].getText());
System.out.println(val[i][j]);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在这里提出的问题.
我不确定这段代码的问题是什么,但每当我运行它时,我得到一个java.lang.StackOverflowError.我该如何解决?这是netbeans的输出控制台中显示的内容:
run:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at sun.awt.Win32GraphicsConfig.getBounds(Native Method)
at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:222) at sun.awt.Win32GraphicsConfig.getBounds(Win32GraphicsConfig.java:222)
at java.awt.Window.init(Window.java:497)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:180)
Run Code Online (Sandbox Code Playgroud)
码
import java.awt.Color;
import java.awt.Font;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* …Run Code Online (Sandbox Code Playgroud) 我正在尝试设计适用于两种帐户的银行帐户GUI; 现在和节省.我有几个问题
这让我疯了几天,所以任何建议或帮助将不胜感激!
主菜单
package assignment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class mainMenuFrame extends javax.swing.JFrame
{
private static final int FRAME_WIDTH = 300;
private static final int FRAME_HEIGHT = 250;
private JPanel infoPanel;
public mainMenuFrame()
{
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setLocationRelativeTo(null);
accountFrame frame = new accountFrame();
savingsAccountFrame sFrame= new savingsAccountFrame();
/* Create menu bar and add menu items so the user can choose what type of account
they would like to set up*/
JMenuBar theMenuBar = new …Run Code Online (Sandbox Code Playgroud) 我正在为phone和实现一个应用程序tablet.我不确定哪个layout folder和value folder将被包含在项目中.任何人都可以给我一些关于layout folders要包含在res应用程序文件夹中的想法.
先生们,
作为练习更多关于类和函数可访问性(例如公共,私有,静态等)的练习,我想编写一个具有以下属性的Java GUI(在Netbeans IDE中):
jButton无法从jTextField获取现有文本,读取/解析文本,获取最新数字,然后递增数字.
例如:
String someString = jTextField.getText();
int someInt = String.valueOf(someString);
someInt++;
String newString = new String();
newString = String.valueOf(someInt);
jTextField.setText()
Run Code Online (Sandbox Code Playgroud)
不被允许.
鉴于上述要求,该项目比看上去困难得多.根据要求,我将不得不在其他地方创建一个可以跟踪计数器值的类(请记住,禁止从TextField中提取当前计数器值).但是,由于Netbeans似乎不允许调用在别处(按钮外)实例化的对象的类方法,这似乎是不可能的.
在所有尝试之后,鉴于其限制,似乎在Netbeans中不可能满足上述4标准的GUI.
我最好的失败尝试 - 因此到目前为止(如果有意义的话)是这样的:
private void IncrementButtonActionPerformed(...){
CountObject C = new CountObject();
int i = C.IncrementCounter();// CountObject has a method for this.
// line or two here to typecast i into a String
jTextField.setText("i");
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为每次重新按下IncrementButton时,它都会简单地实例化一个新的CountObject.在此IncrementButtonActionPerformed事件处理程序之外实例化CountObject,然后从事件处理程序中调用CountObject.IncrementCounter()方法是不允许的,或者看起来如此.
我是否正确地认为上述要求1-4根本无法在Java Netbeans中完成?
谢谢,the_photon
user-interface ×10
java ×5
android ×2
netbeans ×2
swing ×2
button ×1
c++ ×1
javafx ×1
javascript ×1
python ×1
qt ×1
react-native ×1
scope ×1
shape ×1
solver ×1
sudoku ×1
tablet ×1
tk-toolkit ×1
tkinter ×1