0
두 개의 텍스트 항목과 버튼이있는 창으로 구성된 코드로 작성된 모델로 양식을 작성해야합니다.GTK 3 하나의 신호를 여러 위젯에 연결하는 방법은 무엇입니까?
항목에 텍스트를 넣고 단추를 누르면 배열의 두 항목에 들어있는 텍스트를 넣거나 (또는 둘 다 인쇄하거나 동시에 두 가지 작업 모두 수행)
창을 만드는 데 사용되는 코드는 다음과 같다 :
#include <iostream>
#include <gtk/gtk.h>
using namespace std;
GtkWidget *wventana;
GtkWidget *wgrid;
void ventana(string titulo, int margen)
{
const char * tituloc = titulo.c_str();
wventana = gtk_window_new (GTK_WINDOW_TOPLEVEL);
}
void grid()
{
wgrid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(wventana), wgrid);
}
void boton(string texto, int x, int y, int lx, int ly)
{
const char * wtexto = texto.c_str();
GtkWidget *wboton;
wboton = gtk_button_new_with_label (wtexto);
gtk_grid_attach (GTK_GRID (wgrid), wboton, x, y, lx, ly);
}
void entrada(int x, int y, int lx, int ly)
{
GtkWidget *wentrada;
wentrada = gtk_entry_new();
gtk_grid_attach (GTK_GRID (wgrid), wentrada, x, y, lx, ly);
}
//INICIO
int main(int argc, char *argv[])
{
gtk_init (&argc, &argv);
ventana("ventana",10);
grid();
entrada(2, 1, 1, 1);
entrada(2, 2, 1, 1);
boton("Procesar", 2, 3, 1, 1);
gtk_widget_show_all (wventana);
gtk_main();
return 0;
}
제발이 사람이 할 수있는 방법을 명확히 수 (제공된 코드를 사용할 필요가 없습니다, 유일한 필요한 결과에 대한 참조)
감사합니다. 다시 ptomato. 제안한 변경 사항을 적용하려고 시도했지만, 초보자부터 entrada()에서 위젯을 반환하는 방법은 없습니다. 제발 어떻게하는지 설명해 주시겠습니까? 그런데 나는 당신을 투표하려했지만, 나는 충분한 평판을 얻지 못했습니다. 하지만 고마워. – Ffff
함수의 마지막에'return wentrada;'를 사용하고'entrada()'의 리턴 타입을'void'에서'GtkWidget *'로 변경하십시오. – ptomato
고마워, 나는 그것을 바꿨다. 그리고 그 부분은 더 이상 poblems을 야기하지 않는다 ... 그러나'GtkWidget * procesar = boton ("Procesar", 2, 3, 1, 1) 행은'오류를 던진다. 무시해야한다 '고 말했다. 왜 이런 일이 발생합니까? PD : GTK에 대해 많이 알고있는 것 같아요, 제가 배울 수있는 가이드에 대해 알고 있습니까? – Ffff