是否可以在Scene Builder中包含Controls FX的组件?
如果是的话,你能告诉我,如果没有,你能告诉我是否有其他选择?
我想把它WorldWindowGLJPanel放入一个窗格,我想让它可以调整大小,但我不能,即使我打电话resize或setSize方法.
这是我正在做的事情:
wwd = new WorldWindowGLJPanel();
wwd.setPreferredSize(new java.awt.Dimension(300, 300));
wwd.setModel(new BasicModel());
swingNode = new SwingNode();
swingNode.setContent(wwd);
wwdPane = new Pane();
wwdPane.getChildren().add(swingNode);
Run Code Online (Sandbox Code Playgroud)
然后我用它wwdPane来显示World Wind.
我希望我world wind panel的窗格大小包含它,我想让它可以world wind panel调整大小.
我想过给大小我world wind panel我的pane了setSize(PaneDimenson),然后我worldwindpanel的大小与我的窗格中结合,但setSize功能不工作.
编辑:我通过不使用窗格找到了替代解决方案,但直接使用swingNode,调整大小现在是自动的.但是如果你想使用一个窗格仍然存在问题,那么你就强迫使用一个组.
我有一个需要通过CAN协议发送的float变量.为此,必须在4个uint8_t变量中切割32位的浮点数.
我完全不知道该怎么做.我首先考虑将float转换为int但我在Internet上找到的使用强制转换或联合的一些答案似乎不起作用.
这是我正在尝试做的一个简单示例:
float f;
uint8_t ut1,ut2,ut3,ut4;
//8 first bits of f into ut1
//8 second bits of f in ut2
...
// Then I can send the uint8_t through CAN
...
Run Code Online (Sandbox Code Playgroud)
谢谢.
c++ casting type-conversion uint8t floating-point-conversion
我在这里发布后:将信号和插槽关联到qcheckbox动态创建我需要关联:
• clicked()单击某个qCheckBox功能时的信号cliqueCheckBox(QTableWidget *monTab, int ligne, QCheckBox *pCheckBox)
要做到这一点,我必须使用QSignalMapper,经过两个小时试图了解它是如何工作的,我不能有一个好的结果,这是我做的代码,这显然是错误的:
QSignalMapper *m_sigmapper = new QSignalMapper(this);
QObject::connect(pCheckBox, SIGNAL(mapped(QTableWidget*,int, QCheckBox*)), pCheckBox, SIGNAL(clicked()));
QObject::connect(this, SIGNAL(clicked()), this, SLOT(cliqueCheckBox(QTableWidget *monTab, int ligne, QCheckBox *pCheckBox)));
m_sigmapper->setMapping(pCheckBox, (monTab,ligne, pCheckBox));
QObject::connect(m_sigmapper, SIGNAL(clicked()),this, SLOT(cliqueCheckBox(QTableWidget *monTab, int ligne, QCheckBox *pCheckBox)));
Run Code Online (Sandbox Code Playgroud)
你能解释一下,怎么样QSignalMapper?我真的不明白要联系到什么:(
我正在编写一个每10 mS发送一个UDP帧的程序.这是我的程序应该如何工作:
我有一个client class:
//Constructor
clientSupervision::clientSupervision()
{
}
void clientSupervision::sendDataUDP(){
//Create a frame and send it
...
}
void clientSupervision::sendDataUDPTimer(int timer){
QTimer *tempsEnvoieTrameSupervision = new QTimer();//Create a timer
tempsEnvoieTrameSupervision->setInterval(timer);//Set the interval
//Mise en place des connections
QObject::connect (tempsEnvoieTrameSupervision,SIGNAL (timeout()),this, SLOT (envoiTrameSupervision())); //Connect the timer to the function
tempsEnvoieTrameSupervision->start();// Start the timer
}
//Call sendDataUDP
void clientSupervision::envoiTrameSupervision(){
std::cout << "Envoi de la trame de supervision";
sendDataUDP();
}
Run Code Online (Sandbox Code Playgroud)
我的头文件clienSupervision.h:
#ifndef CLIENTSUPERVISION_H
#define CLIENTSUPERVISION_H
#include <winsock2.h> // pour les …Run Code Online (Sandbox Code Playgroud) 我通过CAN协议传输消息.
为此,CAN消息需要uint8_t类型的数据.所以我需要将我的char*转换为uint8_t.通过我对该网站的研究,我生成了这个代码:
char* bufferSlidePressure = ui->canDataModifiableTableWidget->item(6,3)->text().toUtf8().data();//My char*
/* Conversion */
uint8_t slidePressure [8];
sscanf(bufferSlidePressure,"%c",
&slidePressure[0]);
Run Code Online (Sandbox Code Playgroud)
如你所见,我char*必须适应sliderPressure[0].
我的问题是,即使我在编译期间没有错误,slidePressure中的数据也完全不正确.实际上,我用a测试它char* = 0并且我有未知的角色......所以我认为问题必须来自转换.
我的数据可以Bool, Uchar, Ushort and float.
谢谢你的帮助.
我想在地球上用高程表示画一条线,如下所示:

我知道我可以使用折线来表示一条线,但是如何填充线下方的空间?
我有一个用样式表填充红色的 QLabel,但 QLabel 是矩形的,我想要一个圆形。我尝试添加边框半径,但它不起作用,可能是因为我将 QLabel 放在了 formLayout 中。
有没有一种简单的方法可以通过使用样式表来获得圆形 QLabel ?
谢谢。
编辑:使用图片似乎比现在更容易。
在我的程序中,我可能会关闭一个已经关闭的文件.当我fclose对已经关闭的文件执行操作时会发生什么?
如果你不能这样做,如何知道文件是关闭还是打开?
我尝试使用Controls FX和Check List View组件,但是我有几个关于如何使用它的问题:
CheckListView,如何在默认情况下选择它?我想我必须使用setCheckModel,但我迷路了.checkBox某个事件时如何处理事件?我不知道该怎么做,因为我处理的事件是在节点上而不是在节点上checkBox.我不明白如何使用eventHandler这个组件.编辑:这是我做的:
departureCheckListView.setItems(myListAirport.getObservableDepartureAirtport());
departureCheckListView.getItems().addListener(new ListChangeListener<String>() {
@Override
public void onChanged(Change<? extends String> c) {
c.next();
if (c.wasAdded()) {
System.out.println(c.getAddedSubList().get(0));
//departureCheckListView.getSelectionModel().select(c.getAddedSubList().get(0));
Platform.runLater(new Runnable() {
@Override
public void run() {
departureCheckListView.getCheckModel().check(c.getAddedSubList().get(0));
}
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
检查我添加的第一个项目,但是后面的项目.
我不知道这是否有帮助,但我的清单已经整理好了.