我正在尝试使用QT创建器为QgIS构建插件。该插件混合了不同的表单,支持生成图表和报告。
使用某些表单,我希望能够使用Tab键在表单中导航。问题是我必须放置选项卡小部件的图层,而ui似乎只有一个全局tab order
列表?我希望每个标签有一个单独的tab order
,这有意义吗?有可能吗?
我在QT中激活了user
并打印了一个屏幕,我知道如何更改顺序,但是如果我还有其他100项内容,则通过按正确的顺序单击所有内容来做到这一点非常麻烦。 / p>
答案 0 :(得分:0)
您基本上有2个选项。
第一个是从设计器GUI设置所有100多个选项卡。通过使用设计区域右侧所有小部件的概述,可以在“ Tab模式”下在各个选项卡之间切换。请注意,在内部,它仅在选项卡焦点中存储“哪个窗口小部件跟随哪个”。设计器中的编号仅用于使此“链接”可见。但是,此变体的最大问题是,每当您从UI中添加或删除某些内容时,您都必须重做整个过程。
因此,您应该适当地使用第二个变量,并在调用setupUi函数之后在代码中进行制表。这是通过QWidget::setTabOrder
函数完成的。当它具有焦点并按下Tab键时,它告诉每个小部件接下来要聚焦的是哪个。一个简单的例子是:
import java.util.*;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.*;
import javax.servlet.http.*;
public class Check
{
public static void main(String [] args){
int found=0;
String pass=null;
Scanner s=new Scanner(System.in);
System.out.println("PASSWORD: ");
pass=s.next();
Connection con;
boolean st =false;
try{
Class.forName("com.mysql.jdbc.Driver");
try {
con= DriverManager.getConnection
("jdbc::mysql://localhost:3306/test","root","");
PreparedStatement ps =con.prepareStatement
("SELECT * FROM mytable where Name=?");
// Connection cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/medicalstore","root","");
ps.setString(1, pass);
ResultSet rs =ps.executeQuery();
if(rs.next())
do{
if(rs.getString(2).equals(pass)){
//con.close();
System.out.println("FOUND");
found=found+1;
break;
}
}while(rs.next());
}catch(Exception e){
System.out.println("EXCEPTION CAUGHT: "+e);
}
}catch(Exception e)
{
e.printStackTrace();
}
if(found==0)`
System.out.println("NOT FOUND");
}
}