Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

292
Visualizações
Cómo configurar WM_CLASS en TkRoot en Ruby

Estoy tratando de configurar el atributo 'WM_CLASS' para mi aplicación Ruby tk. Lo he intentado de varias maneras, pero creo que debería funcionar así:

 TkRoot.new(class: 'Test')

Pero eso se equivocará con:

 <internal:kernel>:18:in `class': wrong number of arguments (given 1, expected 0) (ArgumentError) from /home/ben/.gem/ruby/3.0.0/gems/tk-0.4.0/lib/tk/root.rb:40:in `block in new' from /home/ben/.gem/ruby/3.0.0/gems/tk-0.4.0/lib/tk/root.rb:36:in `each' from /home/ben/.gem/ruby/3.0.0/gems/tk-0.4.0/lib/tk/root.rb:36:in `new' from examples/form.rb:19:in `initialize' from examples/form.rb:49:in `new' from examples/form.rb:49:in `<main>'

¿Cómo hacerlo correctamente?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tk (C api) está configurando los valores de WM_CLASS en el valor de argv[0] que es lo mismo que $0 en Ruby. Entonces, para configurar WM_CLASS, uno tiene que configurar $0 antes de requerir Tk. es decir:

 $0 = 'myWmClass' require 'Tk' # ... rest of the code follows here

Esto establecerá el nombre de la aplicación (de WM_CLASS) en 'myWmClass' y la clase de la aplicación en 'MyWmClass' (así que aquí se fuerzan las mayúsculas). Si desea establecer el nombre de la aplicación en algo diferente, puede hacerlo a través Tk.appname('someFancyName') después de solicitar Tk. Tenga en cuenta que aunque se requiere Tk, la ventana principal parece no estar creada y, por lo tanto, la ventana principal recién creada tendrá el nombre de aplicación correcto desde el principio. También tenga en cuenta que el uso de una cadena en mayúsculas como nombre de la aplicación puede generar errores, como indica la referencia oficial del comando tk .

Para cualquier otra ventana de nivel superior (además de la ventana raíz), WM_CLASS se puede establecer en la construcción, es decir, TkToplevel.new(root, class: 'Toplevel') . Intentar hacer eso en TkRoot actualmente resultará en una excepción. (Sin embargo, parece funcionar en la API de Python).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda