Windows API有一个名为EnableWindow禁用控件的函数,因此用户无法再与它们进行交互.
是否有GTK3或GTK3 ++的等价物?
我的标签应左对齐且宽度应相同。我使用 aGtkSizeGroup来实现尺寸调整(因为标签并不都有相同的父级)。不幸的是,这似乎打破了对齐:使用下面的代码,标签在中间水平对齐,即使我要求GTK_ALIGN_START. 如果我删除尺寸组,标签将按应有的方式对齐开始。
/* gcc `pkg-config --libs --cflags gtk+-3.0` label-align-test.c */
#include <gtk/gtk.h>
int main(int argc, char **argv)
{
GtkSizeGroup *group;
GtkWidget *window, *grid, *label1, *label2;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
grid = gtk_grid_new ();
gtk_container_add (GTK_CONTAINER (window), grid);
label1 = gtk_label_new ("label 1");
gtk_widget_set_halign (label1, GTK_ALIGN_START);
gtk_grid_attach_next_to (GTK_GRID (grid), label1,
NULL, GTK_POS_BOTTOM,
1, 1);
label2 = gtk_label_new ("label 2 with longer text");
gtk_widget_set_halign (label2, GTK_ALIGN_START);
gtk_grid_attach_next_to (GTK_GRID (grid), label2,
label1, GTK_POS_BOTTOM,
1, 1); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用swift与库CocoaAsyncSocket(https://github.com/robbiehanson/CocoaAsyncSocket)接收SSDP响应
我可以成功地将M-Search命令发送到多播组并获得响应,我查看了wireshark(http://i.imgur.com/pn6LB7R.png):我可以看到M-Search数据包正在运行out和回复但我从未在我的应用程序中收到NSData.(顺便说一句,我现在正在寻找一个Roku)
我已经实现了GCDAsyncUdpSocketDelegate委托并添加了didReceiveData函数,但是我从来没有得到过数据.
我怀疑这部分有问题:
ssdpSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
ssdpSocket.bindToPort(ssdpPort, error: &error)
ssdpSocket.beginReceiving(&error)
ssdpSocket.enableBroadcast(true, error: &error)
ssdpSocket.connectToHost(ssdpAddres, onPort: ssdpPort, error: &error)
ssdpSocket.joinMulticastGroup(ssdpAddres, error: &error)
Run Code Online (Sandbox Code Playgroud)
请参阅以下示例代码:
import UIKit
class ViewController: UIViewController, GCDAsyncUdpSocketDelegate {
//ssdp stuff
var ssdpAddres = "239.255.255.250"
var ssdpPort:UInt16 = 1900
var ssdpSocket:GCDAsyncUdpSocket!
var ssdpSocketRec:GCDAsyncUdpSocket!
var error : NSError?
override func viewDidLoad() {
super.viewDidLoad()
ssdpSocket = GCDAsyncUdpSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
ssdpSocket.bindToPort(ssdpPort, error: &error)
ssdpSocket.beginReceiving(&error)
ssdpSocket.enableBroadcast(true, error: &error)
ssdpSocket.connectToHost(ssdpAddres, onPort: ssdpPort, error: &error)
ssdpSocket.joinMulticastGroup(ssdpAddres, error: …Run Code Online (Sandbox Code Playgroud) 我正在用 GTK 和 Glade 用 C 语言编写一个程序,用于串行通信。我在使用 g_timeout_add 时遇到问题。例如,我有一个serial_data()包含串行数据的函数,并且有一个按钮处理程序on_update_button_clicked()。所以到目前为止,我已经做到了,如果update button单击,则gtk_timeout应该运行。但它只运行一次。
on_update_button_clicked(GtkButton *Update_Button)
{
//2nd argument is serial_data function which contain actual data
g_timeout_add(250,serial_data,NULL);
}
Run Code Online (Sandbox Code Playgroud)
我哪里遗漏了重点?
我还有另一个按钮stop button。所以我希望单击timeout时应该停止。stop button handler怎么做。??
timeout还有一个问题要问,我想像计数器一样统计运行的次数。这样我就可以显示计数器的数字。这怎么可能。?请帮忙谢谢。
我正在尝试学习如何使用gtk + 3.0制作GUI.我想将一个简单的参数,一个整数传递给一个回调函数,这样当我按下按钮时,参数的值会发生变化.这是我的代码:
#include <gtk/gtk.h>
void buttonFunction(GtkWidget * widget, gpointer data, int & n){
n = 1;
}
int main(int argc, char ** argv){
int n = 0;
GtkWidget * window;
GtkWidget * button;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
button = gtk_button_new_with_label("Osss");
gtk_container_add(GTK_CONTAINER(window),button);
gtk_widget_show_all(window);
g_signal_connect(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(buttonFunction), n);
gtk_main();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我发现传递参数的唯一方法是作为指针:
void buttonFunction(GtkWidget * widget, gpointer * data);
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(buttonFunction), &n);
Run Code Online (Sandbox Code Playgroud)
我如何通过这种方式传递多个参数?
def on_printer_button_clicked(self, button):
for i in range(len(self.printer_buttons)):
if button == self.printer_buttons[i]:
pHandle = win32print.OpenPrinter(self.printers[i]['pPrinterName'])
win32print.DeletePrinter(pHandle)
return
Run Code Online (Sandbox Code Playgroud)
所以我所做的就是打开打印机句柄并调用函数删除打印机,如您所见。这是我在运行该函数时在控制台中得到的信息:
uninstall_windowGUI.py", line 57, in on_printer_button_clicked
win32print.DeletePrinter(pHandle)
pywintypes.error: (5, 'DeletePrinter', 'Access is denied.')
Run Code Online (Sandbox Code Playgroud)
我试过运行 IDE(管理员模式下的 Pycharm,但仍然遇到同样的问题。关于如何继续前进的任何想法?在我弄清楚之前我有点卡住了。(另外:我正在使用 Gtk 和Gdk 创建接口,如果这有区别的话。)
g_timeout_add_seconds(1, (GSourceFunc) update_status_tray, NULL);
Run Code Online (Sandbox Code Playgroud)
上面的代码会每秒刷新状态托盘,但我需要每半秒刷新一次.如何更改此行以获得0.5秒?
我有一个运行mysql数据库的远程网络服务器.现在我使用SSH进行任何服务器端管理,我经常访问MySQL.我想知道我是否有可能制作一个ssh到服务器的脚本,如果在命令行上运行"-sql"(可能会有变化),它将转入mysql.
到目前为止我做了什么:
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 //local address for privacy;
mysql -u root -p;
else
ssh user@192.168.0.101
fi
Run Code Online (Sandbox Code Playgroud)
这导致SSH会话,当它结束时,我的计算机将尝试在本地计算机上创建一个mysql连接.
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 'mysql -u root -p';
else
ssh user@192.168.0.101
fi
Run Code Online (Sandbox Code Playgroud)
这导致密码请求,然后什么也没有.我假设它,因为使用带命令的ssh需要响应然后关闭连接.
有没有办法做到这一点,我意识到它没有任何重要意义,但玩它很有趣
提前致谢