小编Jus*_*nen的帖子

如何禁用GTK3中的按钮

Windows API有一个名为EnableWindow禁用控件的函数,因此用户无法再与它们进行交互.

是否有GTK3或GTK3 ++的等价物?

c gtk gtkmm gtk3

7
推荐指数
1
解决办法
6818
查看次数

当 Gtk 标签的宽度由 GtkSizeGroup 设置时如何左对齐

我的标签应左对齐且宽度应相同。我使用 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)

c gtk label alignment gtk3

6
推荐指数
2
解决办法
1万
查看次数

在Swift中使用CocoaAsyncSocket接收SSDP响应

我正在尝试使用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)

udp ios ssdp cocoaasyncsocket swift

6
推荐指数
1
解决办法
4540
查看次数

如何使用g_timeout_add?

我正在用 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还有一个问题要问,我想像计数器一样统计运行的次数。这样我就可以显示计数器的数字。这怎么可能。?请帮忙谢谢。

c gtk timeout button

3
推荐指数
1
解决办法
2万
查看次数

将其他参数传递给gtk函数

我正在尝试学习如何使用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)

我如何通过这种方式传递多个参数?

gtk callback gtk3

2
推荐指数
2
解决办法
8289
查看次数

尝试移除打印机时拒绝访问

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 创建接口,如果这有区别的话。)

python printing pywin32 pycharm

1
推荐指数
1
解决办法
759
查看次数

将g_timeout_add_seconds更改为0.5秒

g_timeout_add_seconds(1, (GSourceFunc) update_status_tray, NULL);
Run Code Online (Sandbox Code Playgroud)

上面的代码会每秒刷新状态托盘,但我需要每半秒刷新一次.如何更改此行以获得0.5秒?

gtk glib

1
推荐指数
1
解决办法
131
查看次数

SSH直接进入MySQL服务器

我有一个运行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需要响应然后关闭连接.

有没有办法做到这一点,我意识到它没有任何重要意义,但玩它很有趣

提前致谢

mysql linux ssh bash

0
推荐指数
1
解决办法
261
查看次数

标签 统计

gtk ×5

c ×3

gtk3 ×3

alignment ×1

bash ×1

button ×1

callback ×1

cocoaasyncsocket ×1

glib ×1

gtkmm ×1

ios ×1

label ×1

linux ×1

mysql ×1

printing ×1

pycharm ×1

python ×1

pywin32 ×1

ssdp ×1

ssh ×1

swift ×1

timeout ×1

udp ×1