


GoNCurses Actualiser la fenêtre d'arrière-plan après le déplacement de la fenêtre de premier plan
l'éditeur php Banana vous présente aujourd'hui une technique intéressante et pratique, qui consiste à utiliser la bibliothèque GoNCurses pour actualiser la fenêtre d'arrière-plan après le déplacement de la fenêtre avant. GoNCurses est une bibliothèque ncurses basée sur le langage Go permettant de créer des interfaces graphiques dans le terminal. Cependant, lorsque nous déplaçons la fenêtre de premier plan, la fenêtre d'arrière-plan ne s'actualise pas automatiquement, ce qui apporte quelques désagréments à nos opérations. En utilisant la méthode d'actualisation fournie par GoNCurses, nous pouvons résoudre ce problème et permettre à la fenêtre d'arrière-plan de s'actualiser automatiquement après le déplacement de la fenêtre de premier plan, améliorant ainsi l'expérience utilisateur. Voyons ensuite de plus près comment mettre en œuvre cette technique.
Contenu de la question
J'essaie de comprendre comment fonctionne ncurses
. Voici un exemple de ce que j'essaie de comprendre et de faire fonctionner.
Premières réflexions :
- Fenêtre 1 avec fond et texte imprimé (
stdscr
) - La fenêtre 2 (
swin
) est au-dessus de la fenêtre 1 avec un arrière-plan différent - Déplacez la fenêtre 2 sur la fenêtre 1
Voici les paramètres :
stdscr, _ := gc.init() defer gc.end() gc.echo(false) gc.cursor(0) gc.cbreak(true) stdscr.setbackground('#') stdscr.moveprint(12, 15, "abcdefghijklmnopq...") stdscr.noutrefresh() y, x := 10, 20 swin, _ := gc.newwindow(4, 8, y, x) swin.keypad(true) swin.setbackground('.') swin.box(0, 0) swin.noutrefresh() gc.update()
Il existe également une for
boucle très simple qui permettra de déplacer la fenêtre de premier plan :
main: for { // stdscr.erase() // stdscr.noutrefresh() swin.movewindow(y, x) swin.noutrefresh() gc.update() switch swin.getchar() { case gc.key_right: x++ case gc.key_down: y++ case 'q': break main } } swin.delete() stdscr.delete()
Maintenant quand je bouge window 2
celui en arrière-plan ne se rafraîchit pas et laisse une trace :
########################## #######┌┌┌┌┌──────┐####### #######│││││......│####### ##abcde│││││......│...#### #######└└└└└──────┘####### ########################## ##########################
Quand je décommente stdscr.erase()
和 stdscr.noutrefresh()
时,我修复了踪迹,但当然我丢失了后台窗口上的所有数据,例如文本 "abcdefghijklmnopq..."
: p>
##################### #######┌──────┐###### #######│......│###### #######│......│###### #######└──────┘###### ##################### #####################
J'ai essayé de créer window 2
作为主窗口的子窗口,但没有成功。我该如何解决/处理这个问题?通常如何使用 ncurses
une fenêtre enfant de la fenêtre principale mais sans succès. Comment puis-je résoudre/traiter ce problème ? Comment les fenêtres qui se chevauchent sont-elles généralement gérées à l'aide de
les curses ne sont pas directement prises en charge (voir la bibliothèque panel Sinon, vous devez utiliser touchwin
作为解决方法(使用 dialog
和 cdk
touchwin
dialog
et cdk
terminé) 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

GO POINTER SYNTAXE ET ATTENDRE DES PROBLÈMES DANS LA BIBLIOTHÈQUE VIPER Lors de la programmation en langage Go, il est crucial de comprendre la syntaxe et l'utilisation des pointeurs, en particulier dans ...
